wxs中也是有变量存在的,因为我们也要做各种各样应用和引入,因此变量的存在是必须的,那么什么是WXS变量呢?
WXS 中的变量均为值的引用。
没有声明的变量直接赋值使用,会被定义为全局变量。
如果只声明变量而不赋值,则默认值为 undefined。
var表现与javascript一致,会有变量提升。
1.变量名
变量命名必须符合下面两个规则:
首字符必须是:字母(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
case
default
因为这些标识符在系统中已经有各自的作用了,相当于已经封装过了,因此,这些标识符就不能够再次的当作变量名字来使用了,这样会引起命名冲突.
2.注释
WXS 主要有 3 种注释的方法。
<!-- wxml -->
<wxs module="sample">
// 方法一:单行注释
/*
方法二:多行注释
*/
/*
方法三:结尾注释。即从 /* 开始往后的所有 WXS 代码均被注释
var a = 1;
var b = 2;
var c = "fake";
上述例子中,所有 WXS 代码均被注释掉了。
方法三 和 方法二 的唯一区别是,没有 */ 结束符。
3.运算符
基本运算符
var a = 10, b = 20;
// 加法运算
console.log(30 === a + b);
// 减法运算
console.log(-10 === a - b);
// 乘法运算
console.log(200 === a * b);
// 除法运算
console.log(0.5 === a / b);
// 取余运算
console.log(10 === a % b);
像这些都是简单的加减乘除的运算都属于基本运算符
(注意:加法运算(+)也可以用作字符串的拼接)
一元运算符
示例代码:
var a = 10, b = 20;
// 自增运算
console.log(10 === a++);
console.log(12 === ++a);
// 自减运算
console.log(12 === a--);
console.log(10 === --a);
// 正值运算
console.log(10 === +a);
// 负值运算
console.log(0-10 === -a);
// 否运算
console.log(-11 === ~a);
// 取反运算
console.log(false === !a);
// delete 运算
console.log(true === delete a.fake);
// void 运算
console.log(undefined === void a);
// typeof 运算
console.log("number" === typeof a);
位运算符
示例代码:
var a = 10, b = 20;
// 左移运算
console.log(80 === (a << 3));
// 带符号右移运算
console.log(2 === (a >> 2));
// 无符号右移运算
console.log(2 === (a >>> 2));
// 与运算
console.log(2 === (a & 3));
// 异或运算
console.log(9 === (a ^ 3));
// 或运算
console.log(11 === (a | 3));
比较运算符
示例代码:
var a = 10, b = 20;
// 小于
console.log(true === (a < b));
// 大于
console.log(false === (a > b));
// 小于等于
console.log(true === (a <= b));
// 大于等于
console.log(false === (a >= b));
等值运算符
示例代码:
var a = 10, b = 20;
// 等号
console.log(false === (a == b));
// 非等号
console.log(true === (a != b));
// 全等号
console.log(false === (a === b));
// 非全等号
console.log(true === (a !== b));
赋值运算符
示例代码:
var a = 10;
a = 10; a *= 10;
console.log(100 === a);
a = 10; a /= 5;
console.log(2 === a);
a = 10; a %= 7;
console.log(3 === a);
a = 10; a += 5;
console.log(15 === a);
a = 10; a -= 11;
console.log(-1 === a);
a = 10; a <<= 10;
console.log(10240 === a);
a = 10; a >>= 2;
console.log(2 === a);
a = 10; a >>>= 2;
console.log(2 === a);
a = 10; a &= 3;
console.log(2 === a);
a = 10; a ^= 3;
console.log(9 === a);
a = 10; a |= 3;
console.log(11 === a);
二元逻辑运算符
示例代码:
var a = 10, b = 20;
// 逻辑与
console.log(20 === (a && b));
// 逻辑或
console.log(10 === (a || b));
其他运算符
示例代码:
var a = 10, b = 20;
//条件运算符
console.log(20 === (a >= 10 ? a + 10 : b + 10));
//逗号运算符
console.log(20 === (a, b));
运算符优先级
示例代码:
var a = 10, b = 20;
//条件运算符
console.log(20 === (a >= 10 ? a + 10 : b + 10));
//逗号运算符
console.log(20 === (a, b));
if 语句
在 WXS 中,可以使用以下格式的 if 语句 :
if (expression) statement : 当 expression 为 truthy 时,执行 statement。
if (expression) statement1 else statement2 : 当 expression 为 truthy 时,执行 statement1。 否则,执行 statement2
if … else if … else statementN 通过该句型,可以在 statement1 ~ statementN 之间选其中一个执行。
switch 语句
switch (表达式) {
case 变量:
语句;
case 数字:
语句;
break;
case 字符串:
语句;
default:
语句;
}
(注意:default 分支可以省略不写。
case 关键词后面只能使用:变量,数字,字符串。)
for 语句
for (语句; 语句; 语句)
语句;
for (语句; 语句; 语句) {
代码块;
}
(注意:支持使用 break,continue 关键词。)
while 语句
while (表达式)
语句;
while (表达式){
代码块;
}
do {
代码块;
} while (表达式)
(注意:当表达式为 true 时,循环执行语句或代码块。
支持使用 break,continue 关键词。)
5.数据类型
WXS 语言目前共有以下几种数据类型:
number : 数值
string :字符串
boolean:布尔值
object:对象
function:函数
array : 数组
date:日期
regexp:正则
number:
number 包括两种数值:整数,小数。
constructor:返回字符串 “Number”
方法
toString
toLocaleString
valueOf
toFixed
toExponential
toPrecision
string
string 有两种写法:
'hello world';
"hello world";
属性
constructor:返回字符串 “String”。
length
除constructor外属性的具体含义请参考 ES5 标准。
方法同上.
基本上都是这样,还有一些不太一样的可以参考手册
6.基础类库
console
console.log 方法用于在 console 窗口输出信息。它可以接受多个参数,将它们的结果连接起来输出。
JSON
方法
stringify(object): 将 object 对象转换为 JSON 字符串,并返回该字符串。
parse(string): 将 JSON 字符串转化成对象,并返回该对象。
Number
属性
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
POSITIVE_INFINITY
Date
属性
NaN
Infinity
undefined
方法
parseInt
parseFloat
isNaN
isFinite
decodeURI
decodeURIComponent
encodeURI
encodeURIComponent
WXS语法就到这里了.
WXS总归到底也是一种语法,所以语法该有的东西它一般都有,包括,变量,注释,运算符,数据类型等等,但是它的使用方法又和一般的语法并不我完全相同.需要我们多看手册
好了,我们的WXS语法就讲到这里了,下期再见