wxs
概覽
- 仿js功能
- 頁面渲染
<!--wxml-->
<wxs module="m1">
var msg = "hello world";
module.exports.message = msg;
</wxs>
<view> {{m1.message}} </view>
輸出
hello world
- 數(shù)據(jù)處理
wxs模塊婉陷、
.wxs/<wxs>都是單一的模塊杠输,有自己的作用域皆尔,外部訪問需要module.exports
- .wxs文件
// /pages/comm.wxs
var foo = "'hello world' from comm.wxs";
var bar = function(d) {
return d;
}
module.exports = {
foo: foo,
bar: bar
};
- module 對象
- 每個wxs都有內(nèi)置的module對象
- 通過exports双藕,與外部共享函數(shù)內(nèi)部成員
// /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>
輸出:some msg
'hello world' from tools.wxs
- require函數(shù)
- 在.wxs模塊中引用其他 wxs 文件模塊,可以使用 require 函數(shù)
- 只能引用 .wxs 文件模塊烹棉,且必須使用相對路徑攒霹。
- wxs 模塊均為單例,wxs 模塊在第一次被引用時浆洗,會自動初始化為單例對象催束。
- 如果一個 wxs 模塊在定義之后,一直沒有被引用伏社,則該模塊不會被解析與運行抠刺。
// /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";
// /pages/logic.wxs
var tools = require("./tools.wxs");
console.log(tools.FOO);
console.log(tools.bar("logic.wxs"));
console.log(tools.msg);
<!-- /page/index/index.wxml -->
<wxs src="./../logic.wxs" module="logic" />
輸出:'hello world' from tools.wxs
logic.wxs
some msg
-
<wxs>標(biāo)簽
- module 模塊名
- src 引用的wxs文件,此時標(biāo)簽為單閉合標(biāo)簽或者標(biāo)簽內(nèi)部無內(nèi)容
-
module屬性
- 命名方式類php變量聲明規(guī)則
<!--wxml-->
<wxs module="foo">
var some_msg = "hello world";
module.exports = {
msg : some_msg,
}
</wxs>
<view> {{foo.msg}} </view>
- src屬性
- src 屬性可以用來引用其他的 wxs 文件模塊摘昌。
- 只能引用 .wxs 文件模塊速妖,且必須使用相對路徑。
- 只需載入一次
- 無引用則不解析
// /pages/index/index.js
Page({
data: {
msg: "'hello wrold' from js",
}
})
<!-- /pages/index/index.wxml -->
<wxs src="./../comm.wxs" module="some_comms"></wxs>
<!-- 也可以直接使用單標(biāo)簽閉合的寫法
<wxs src="./../comm.wxs" module="some_comms" />
-->
<!-- 調(diào)用 some_comms 模塊里面的 bar 函數(shù)聪黎,且參數(shù)為 some_comms 模塊里面的 foo -->
<view> {{some_comms.bar(some_comms.foo)}} </view>
<!-- 調(diào)用 some_comms 模塊里面的 bar 函數(shù)罕容,且參數(shù)為 page/index/index.js 里面的 msg -->
<view> {{some_comms.bar(msg)}} </view>
變量
略
注釋
略
運算符
- 基本運算符 (賦值,算術(shù))
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 = '.w' , b = 'xs';
// 字符串拼接
console.log('.wxs' === 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);
// 負(fù)值運算
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));
//逗號運算符锦秒,出現(xiàn)逗號只取最后一個變量
console.log(20 === (a, b));
語句
略
數(shù)據(jù)類型(屬性與方法參考ES5)
- 概覽
- number : 數(shù)值
- string : 字符串
- boolean: 布爾值
- object: 對象
- function: 函數(shù)
- array: 數(shù)組
- date: 日期
- regexp: 正則
基礎(chǔ)類庫(屬性與方法參考ES5)
- Math
- JSON
- Number
- Date
- Global