zhichi_admin 发表于 2018-1-16 16:48:32

「小程序语言」小程序提供专属脚本语言_解析

WXS脚本语言是 Weixin Script脚本的简称,是JS、JSON、WXML、WXSS之后又一大小程序内部文件类型。截至到目前小程序已经提供了5种文件类型。解构小程序的几种方式,其中一种方式就是通过文件类型:JS、JSON、WXML、WXSS、WXS。前面四种之前已经介绍过,今天主要是介绍WXS这种文件类型。如果你是PHP、JAVA、C#程序员的话写过服务端代码的话,就很好理解WXS这种脚本语言了。能够更加方便的动态实现页面上的一些基本逻辑判断,而不用全部的依赖后台实现,再通过接口返回。
一、WXS创建方式WXS的使用,有两种方式。方式一:直接在WXML中编写<!--wxml-->

<wxs module="foo">

var some_msg = "hello world";

module.exports = {    msg : some_msg, }

</wxs>

<view> {{foo.msg}} </view>方式二:使用单独的WXS文件,然后在WXML中引入即可<!-- /page/index/index.wxml -->

<wxs src="./../logic.wxs" module="logic" />   
二、WXS文件的构成1、数据类型类似小程序大厦的砖头、保暖砖、预制件之类的内容,这些都是通用的内容,这些是编程语言的基本构成项,数据类型可以是简单的类型,也可以是复杂的类型。从普通的数字再到复杂的对象。WXS 语言目前共有8种数据类型:
[*]number : 数值
[*]string :字符串
[*]boolean:布尔值
[*]object:对象
[*]function:函数
[*]array : 数组
[*]date:日期
[*]regexp:正则
WXS中使用var或let来定义变量,从定义中很难看出变量的类型,判定一个变量是什么类型。可以使用变量的属性constructor。还可以使用 typeof这种方式来判定变量的类型例如:var number = 10;console.log( "Number" === number.constructor );console.log( 'number' === typeof number );
2、变量变量就是构建小程序这座大厦的基本件,虽然是很小,但是有自己的规范,主要有如下几个方面:命名规范,首字符必须是:字母(a-zA-Z),下划线(_),剩余字符可以是:字母(a-zA-Z),下划线(_), 数字(0-9)。大小写不同则是不同的变量保留字符delete void typeof null undefined NaN Infinity var if else true false require this function arguments return for while do break continue switch casedefault
3、操作运算符根据操作对象的个数,可以分为一元、二元、多元运算符。我们常用的加减乘除这些都需要两个操作对象才能完成,那这些就是二元运算符。自增或自减这些只需要一个运算符就可以完成。这些就是一元运算符。需要二个以上的运算对象的那就是多元运算符了。
4、选择结构选择结构,又称为判断结构,如果C条件满足了则执行一种情况,条件不满足则执行另外一种情况 。另外一种是多条件的,如果C1条件满足了,则执行A部分,如果C2条件满足了则执行B部分,如果C3条件满足则执C部分,以此类推,所有条件都不满足是则执行Z部分。// if ... else if (表达式) 语句;else 语句;if (表达式)语句;else语句;if (表达式) {代码块; } else {代码块; }// if ... else if ... else ...if (表达式) {代码块; } else if (表达式) {代码块; } else if (表达式) {代码块; } else {代码块; }switch (表达式) {    case 变量:        语句;    case 数字:        语句;        break;    case 字符串:        语句;    default:        语句; }
5、循环结构简单的事情,不想重复的写代码,那就可以把公共执行的部分剥离出来for (语句; 语句; 语句)语句;for (语句; 语句; 语句) {代码块; }while (表达式)语句;while (表达式){代码块; }do {代码块; } while (表达式)支持使用 break,continue 关键词。break是结束整个循环continue是中断当前本次循环到这里的时候就先停一下通过1和2这两个部分完成的组件,再通过3、4、5这三大部分的“粘合剂”就可以完成后面6和7慢慢的你会发现写小程序就是盖房子一样的,把原材料准备好,使用粘合剂给连接起来就可以了。
6、模块(自定义的函数)在WXS中编写业务逻辑与内容,使用 moudle.exports的方式把变量或函数公开。// /pages/tools.wxs

var foo = "'hello world' from tools.wxs";

var bar = function (d) {return d; }

module.exports = {

      FOO: foo,

      bar: bar,

};

module.exports.msg = "some msg";在使用的地方地方,需要引入对就的模块才能使用<!-- page/index/index.wxml -->

<wxs src="./../tools.wxs" module="tools" />

<view> {{tools.msg}} </view>

<view> {{tools.bar(tools.FOO)}} </view>注意:tool.FOOFOO是大写,因为上面部分是使用FOO做为对外公开的变量名。
7、函数库(已经定义好的函数)consoleconsole.log()   console.info()console.warn()   console.error()这是引用的chrome的经典内容。MathMath.PI    Math.ceil()   Math.floor()带有()是对应的方法,没有带括号的是属性,Number
[*]MAX_VALUE
[*]MIN_VALUE
[*]NEGATIVE_INFINITY
[*]POSITIVE_INFINITY
JSON
[*]stringify(object): 将 object 对象转换为 JSON 字符串,并返回该字符串。
[*]parse(string): 将 JSON 字符串转化成对象,并返回该对象。
Global属性
[*]NaN
[*]Infinity
[*]undefined
方法
[*]parseInt
[*]parseFloat
[*]isNaN
[*]isFinite
[*]decodeURI
[*]decodeURIComponent
[*]encodeURI
[*]encodeURIComponent
以上内容的更多用法可以参考ES语法http://es6.ruanyifeng.com/
三、注释单独的把这一块拿出来,一方面是说明其重要性,另一方面是学习一门语言与他人沟通中很重要的一部分。WXS 主要有 3 种注释的方法。<!-- wxml --><wxs module="sample">// 方法一:单行注释 /* 方法二:多行注释 */ /* 方法三:结尾注释。即从 /* 开始往后的所有 WXS 代码均被注释 var a = 1; var b = 2; var c = "fake";</wxs>在编程实践中,只要能把思路理清就能把代码实现出来,在大师兄的公司基本上推荐的是先写注释内容,然后再把注释内容转换为代码。//加载页面数据//给评论区加载数值//臭鸡蛋数//转发数//投票数所以对于大家学习一门新语言时,不要惧怕,只要能表达清自己的思路,然后再一步一步的把注释内容转为代码语言即可,通过我们之前的学习的调试工具就一点点完成自己的小程序。
总结:根据不同的需要给不同的数据类型通过变量的方式命名,通过操作运算符组合成自己的想要的业务代码。
页: [1]
查看完整版本: 「小程序语言」小程序提供专属脚本语言_解析