成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

小程序中的wxs語法

tanglijun / 1302人閱讀

摘要:官方解釋與是不同的語言,有自己的語法,并不和一致。的運行環(huán)境和其他代碼是隔離的,中不能調(diào)用其他文件中定義的函數(shù),也不能調(diào)用小程序提供的。由于運行環(huán)境的差異,在設(shè)備上小程序內(nèi)的會比代碼快倍。因為,是的數(shù)據(jù)類型語法是沒有的。

wxs 官方解釋

WXS 與 JavaScript 是不同的語言,有自己的語法,并不和 JavaScript 一致。

WXS 的運行環(huán)境和其他 JavaScript 代碼是隔離的,WXS 中不能調(diào)用其他 JavaScript 文件中定義的函數(shù),也不能調(diào)用小程序提供的API。

WXS 函數(shù)不能作為組件的事件回調(diào)。

由于運行環(huán)境的差異,在 iOS 設(shè)備上小程序內(nèi)的 WXS 會比 JavaScript 代碼快 2 ~ 20 倍。在 android 設(shè)備上二者運行效率無差異

使用方法

wxs 代碼可以寫在wxml 文件中 的標(biāo)簽內(nèi), 或者 以 .wxs 為后綴名的文件內(nèi)。(ps: 一般建議寫在 .wxs 文件中

每個 .wxs 文件 或者 標(biāo)簽都是一個多帶帶的模塊, 當(dāng)我們想在外部引入其中的私有變量或者函數(shù)時, 需要 module.exports 實現(xiàn)。

示例代碼:

首先在tools.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";

然后在 wxml 頁面中引用


{{tools.FOO}}
{{tools.bar(5)}}
{{tools.msg}}

頁面中會顯示

### 注意事項

wxs 跟js 相比還是有很多限制的。

比如:

不支持 es6 語法, 所以我們平常編碼過程中使用的 解構(gòu), 箭頭函數(shù)...都是不支持的。

定義變量只能用 var 或者不寫 代表全局。因為 let ,cons是 es6 的

數(shù)據(jù)類型 wxs 語法是沒有 symbol null undefined 的。 其他的數(shù)據(jù)類型都支持。

具體都有:

number : 數(shù)值

string :字符串

boolean:布爾值

object:對象

function:函數(shù)

array : 數(shù)組

date:日期

regexp:正則

判斷wxs中的數(shù)據(jù)類型

我們知道 在 js 中判斷數(shù)據(jù)類型可以用 typeof && Object.prototype.toString.call()

typeof undefined === "undefined"   // true
typeof true      === "bollean"    // true
typeof 25        === "number"    // true
typeof "shit"      === "string" // true
typeof { name: "mars"} === "object"  // true

// 以及 es6中的Symbol 
typeof Symbol()  === "symbol"    // true


typeof function a() {} === "function"  // true

以上6種數(shù)據(jù)類型都有與之同名的字符串與之對應(yīng)。 但是 mull是 不再其中 的

typeof null === "object"    // true

我們知道當(dāng) 遇到 Array Date Object... 時 typeof 都會識別為 object

此時需要 Object.prototype.toString.call()

但是在wxs 中 有屬性 constructor 會返回相應(yīng)數(shù)據(jù)類型的字符串

如圖:

更多詳細介紹戳

模塊只能在定義模塊的 WXML 文件中被訪問到。使用 時, 模塊不會被引入到對應(yīng)的 WXML 文件中。