# 變量
## 概念
- WXS 中的變量均為值的引用。
- 沒有聲明的變量直接賦值使用,會被定義為全局變量。
- 如果只聲明變量而不賦值,則默認值為 `undefined`。
- var表現與javascript一致,會有變量提升。
## 變量名
變量命名必須符合下面兩個規則:
- 首字符必須是:字母(a-zA-Z),下劃線(_)
- 剩余字符可以是:字母(a-zA-Z),下劃線(_), 數字(0-9)
## 保留標識符
以下標識符不能作為變量名:
```plain
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
```
# 注釋
wxs 有三種注釋方法:
```
<!-- wxml -->
<wxs module="sample">
// 方法一:單行注釋
/*
方法二:多行注釋
*/
/*
方法三:結尾注釋。即從 /* 開始往后的所有 WXS 代碼均被注釋
var a = 1;
var b = 2;
var c = "fake";
</wxs>
```
# 運算符優先級
| 優先級 | 運算符 | 說明 | 結合性 |
| ---- | ------------------- | ------ | ---- |
| 20 | `(` ... `)` | 括號 | n/a |
| 19 | ... `.` ... | 成員訪問 | 從左到右 |
| | ... `[` ... `]` | 成員訪問 | 從左到右 |
| | ... `(` ... `)` | 函數調用 | 從左到右 |
| 17 | ... `++` | 后置遞增 | n/a |
| | ... `--` | 后置遞減 | n/a |
| 16 | `!` ... | 邏輯非 | 從右到左 |
| | `~` ... | 按位非 | 從右到左 |
| | `+` ... | 一元加法 | 從右到左 |
| | `-` ... | 一元減法 | 從右到左 |
| | `++` ... | 前置遞增 | 從右到左 |
| | `--` ... | 前置遞減 | 從右到左 |
| | `typeof` ... | typeof | 從右到左 |
| | `void` ... | void | 從右到左 |
| | `delete` ... | delete | 從右到左 |
| 14 | ... `*` ... | 乘法 | 從左到右 |
| | ... `/` ... | 除法 | 從左到右 |
| | ... `%` ... | 取模 | 從左到右 |
| 13 | ... `+` ... | 加法 | 從左到右 |
| | ... `-` ... | 減法 | 從左到右 |
| 12 | ... `<<` ... | 按位左移 | 從左到右 |
| | ... `>>` ... | 按位右移 | 從左到右 |
| | ... `>>>` ... | 無符號右移 | 從左到右 |
| 11 | ... `<` ... | 小于 | 從左到右 |
| | ... `<=` ... | 小于等于 | 從左到右 |
| | ... `>` ... | 大于 | 從左到右 |
| | ... `>=` ... | 大于等于 | 從左到右 |
| 10 | ... `==` ... | 等號 | 從左到右 |
| | ... `!=` ... | 非等號 | 從左到右 |
| | ... `===` ... | 全等號 | 從左到右 |
| | ... `!==` ... | 非全等號 | 從左到右 |
| 9 | ... `&` ... | 按位與 | 從左到右 |
| 8 | ... `^` ... | 按位異或 | 從左到右 |
| 7 | ... `|` ... | 按位或 | 從左到右 |
| 6 | ... `&&` ... | 邏輯與 | 從左到右 |
| 5 | ... `||` ... | 邏輯或 | 從左到右 |
| 4 | ... `?` ... `:` ... | 條件運算符 | 從右到左 |
| 3 | ... `=` ... | 賦值 | 從右到左 |
| | ... `+=` ... | 賦值 | 從右到左 |
| | ... `-=` ... | 賦值 | 從右到左 |
| | ... `*=` ... | 賦值 | 從右到左 |
| | ... `/=` ... | 賦值 | 從右到左 |
| | ... `%=` ... | 賦值 | 從右到左 |
| | ... `<<=` ... | 賦值 | 從右到左 |
| | ... `>>=` ... | 賦值 | 從右到左 |
| | ... `>>>=` ... | 賦值 | 從右到左 |
| | ... `&=` ... | 賦值 | 從右到左 |
| | ... `^=` ... | 賦值 | 從右到左 |
| | ... `|=` ... | 賦值 | 從右到左 |
| 0 | ... `,` ... | 逗號 | 從左到右 |
- 簡介
- 第一章 公眾號開發
- 使用微信JSSDK
- 接口權限配置
- 分享接口
- 隱藏按鈕項
- 微信支付
- 第二章 小程序開發
- 基礎知識
- 分包加載
- WXSS樣式表
- 配置
- app.json配置
- window
- tabBar
- page.json配置
- 邏輯層
- app.js
- 場景值
- page.js
- 初始化數據
- 生命周期函數
- 頁面相關事件處理函數
- 事件處理函數
- 頁面實例方法
- 路由
- 文件作用域
- 模塊化
- 視圖層
- 模板語法
- 列表渲染
- 條件渲染
- 模板
- 事件
- 引用
- WXS語法規范
- WXS數據類型
- WXS控制流程
- WXS基礎類庫
- 組件
- 視圖容器
- view
- scroll-view
- swiper
- movable-view
- cover-view
- 基礎組件
- icon
- text
- rich-text
- progress
- 表單組件
- button
- checkbox
- form
- input
- label
- picker
- picker-view
- radio
- slider
- switch
- textarea
- 導航組件
- navigator
- 媒體組件
- audio
- image
- video
- camera
- 地圖組件
- map
- 畫布組件
- canvas
- 開放能力
- web-view
- 自定義組件
- 組件模版和樣式
- Component
- 組件傳值
- 組件事件
- Behaviors
- 組件間關系
- 網絡請求
- wx.request
- 微信登錄
- 獲取 openid 和 unionid
- 獲取用戶信息
- 將 wx.request 封裝為 promise
- 上傳圖片接口封裝
- 數據存儲
- 存儲數據和讀取數據
- 獲取數據緩存信息
- 移除數據緩存
- 獲取用戶設置
- openSetting
- getSetting
- 第三章 小游戲開發
- 參考資料