ウィーチャットのプログラム開発の枠組みのシナリオ言語WXSを勉強します.


この貼り付けは学習9時間でWeChatアプリケーションの開発を完了するノートです.文書:WXS・アプレット
WXS(WeiXin Script)はウィジェットのスクリプト言語です.WXMLを組み合わせると、ページビューの構造と内容が構築されます.WXSを使ってフィルタ処理をしたり、計算処理をします.WXSは実はJavaScriptスクリプト言語の上層部に対していくつかのパッケージと制限を行いました.
注意:WXSの実行環境と他のjavascriptコードは分離されています.WXSでは他のjavascriptファイルで定義された関数を呼び出すことができません.また、ウィジェットが提供するAPIを呼び出すこともできません.WXS関数はコンポーネントのイベントとしてフィードバックできません.
WXSには、モジュール、変数、コメント、演算子、ステートメント、データタイプ、ベースクラスがあります.
WXS特性
モジュールモジュール
ドキュメント:モジュール・ウィジェットモジュールは、ラベルで宣言したり、ファイルで宣言したりできます.WXSモジュールの変数は機能領域があります.各モジュールは自分の変数がプライベートであることを黙認しています.外部は見えません.
  • タグによって宣言されます.
  • 
    <wxs module="m1">
        module.exports = {
            message: 'Hello,world!'
        }
    wxs>
    
    <view>{{m1.message}}view>
    module.export関数によりm1モジュールの変数を外部に露出させて使用する.
  • はファイル形式で宣言し、対象ファイルを.wxsに拡張子と命名する必要がある:
  • 
    <wxs src="./m2.wxs" module="m2">wxs>
    <view>{{m2.message}}view>
    //m2.wxs
    module.exports = require('./m1.wxs')
    //m1.wxs
    module.exports = {
        message: "hello world!"
    }
    WXSファイル内で他のWXSファイルをrequireを介して参照することもできる.
    変数variate
    ドキュメント:変数・ウィジェットの変数とES 5の変数の使い方が一致します.
  • WXSの変数は値の参照である.
  • 宣言されていない変数の直接割当値を使用すると、グローバル変数として定義されます.
  • 変数だけを宣言して値を与えない場合、デフォルト値はundefinedです.
  • var表現はjavascriptと一致し、変数が上昇します.
  • 変数名の最初の文字は、必ずアルファベット(a-zA-Z)、下線()、残りの文字は、アルファベット(a-zA-Z)、下線()、数字(0-9)
  • であることができます.
    コメント
    
    <wxs module="sample">
    //    :    
    
    /*
       :    
    */
    
    /*
       :    。   /*         WXS       ,     
    
    var a = 1;
    var b = 2;
    var c = "fake";
    
    wxs>
    演算子operator
    ドキュメント:演算子・ウィジェットWXSの演算子は、基本演算子、単項演算子、ビット演算子、比較演算子、等値演算子、賦値演算子、および二元論理演算子を含む.
  • 基本演算子:
  • 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);
    //     
    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);
    typeof演算子は、リターン変数のデータタイプである.
  • ビット演算子:
  • 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));
    演算子の優先順位は、ドキュメントを参照します.WXSのステートメントとJavaScriptでよく使われるステートメントは基本的に一致しており、if...elsedo...whileswitchなどを含み、WXS内でtry...catchステートメントがサポートされていないこととは違います.
    データタイプdata type
    number:数値.numberは2つの数値を含みます.整数、小数.ストリング:文字列.stringには二つの用法があります.シングルクォーテーションとダブルクォーテーションです.ブール値.ブール値は2つの特定の値しかありません.trueとfalseです.オブジェクト.objectは無秩序なキーのペアです.function:関数array:配列date:日付.dateオブジェクトを生成するには、getDate関数を使用して、現在の時間のオブジェクトを返す必要があります.regexp:正則.regexpオブジェクトを生成するにはgetRegExp関数が必要です.
    データタイプの具体的な属性と方法は、ドキュメントを参照してください.
    ベースクラスBaic library
    文書:ベースクラス・ウィジェットWXSは全部で6種類のベースクラスがあります.Math、JSON、Number、Date、consosone、Global.ES 5基準とほぼ同じです.違いは、WXSのconsolieクラスライブラリはconsole.logのみを提供する方法である.Dateクラスライブラリは、ES 5におけるDateアーキテクチャ関数の3つの方法、すなわちDate.parse(解析文字列形式の日付時間、当該日付時間のUnixタイムスタンプを返す)、Date.now(現在日時のUnixタイムスタンプを返す)、Date.UTC(指定時間のUnixタイムスタンプを返す)のみを提供している.