# 变量
## 概念
- 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
- 第三章 小游戏开发
- 参考资料