微信小程序 变量

本文介绍了微信小程序中变量的概念,强调未声明的变量会被定义为全局变量,并默认值为undefined。WXS中的变量行为与JavaScript一致,存在变量提升现象。接着详细说明了变量命名的规则,要求首字符为字母或下划线,后续字符可包含字母、下划线和数字。最后,文章列出了不得用作变量名的保留标识符。

概念

  • WXS 中的变量均为值的引用。
  • 没有声明的变量直接赋值使用,会被定义为全局变量。
  • 如果只声明变量而不赋值,则默认值为 undefined。
  • var表现与javascript一致,会有变量提升。
var foo = 1;
var bar = "hello world";
var i; // i === undefined

上面代码,分别声明了 foo、 bar、 i 三个变量。然后,foo 赋值为数值 1 ,bar 赋值为字符串 "hello wolrd"。

变量名

变量命名必须符合下面两个规则:

  • 首字符必须是:字母(a-zA-Z),下划线(_)
  • 剩余字符可以是:字母(a-zA-Z),下划线(_), 数字(0-9)

保留标识符

以下标识符不能作为变量名:

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
微信小程序变量作用域有多种情况,以下详细介绍: - **全局作用域**:全局变量是整个微信小程序所有页面都可以访问的变量,定义在`app.js`文件中的`globalData`里面。例如: ```javascript //app.js App({ onLaunch: function () { // 展示本地存储能力 var logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) }, globalData: { userInfo: null, basePath: 'http://127.0.0.1:8080' } }) ``` 在其他页面可以通过`getApp()`获取全局变量,如: ```javascript // 某页面的js文件 const app = getApp(); console.log(app.globalData.basePath); ``` 这样在任何页面都可以对`app.js`里`globalData`中的变量进行访问和修改,实现全局数据的共享[^1][^2][^4]。 - **页面作用域**:每个页面都是一个独立的模块,在`Page`外定义的变量属于页面作用域。这些变量在当前页面内有效,但其他页面无法直接获取。例如: ```javascript // 某页面的js文件 let pageVariable = 'This is a page variable'; Page({ data: { // 页面中要显示的数据 showData: 'Display data' }, onLoad: function() { console.log(pageVariable); } }) ``` `pageVariable`只能在当前页面使用,其他页面无法访问该变量。而页面中要显示的数据通常定义在`data`里面,这些数据会和页面的`wxml`进行绑定,当数据变化时,页面会自动更新显示内容。如果`data`里面的变量名跟`Page`外面的变量名重名,二者互不影响;但函数中的变量名跟`Page`外面的重名则会覆盖,并产生变量的声明提升[^2]。 - **函数作用域**:函数内部声明的变量具有函数作用域,只能在该函数内部访问。例如: ```javascript Page({ onLoad: function() { let functionVariable = 'This is a function variable'; console.log(functionVariable); }, onShow: function() { // 这里无法访问 functionVariable // console.log(functionVariable); // 会报错 } }) ``` `functionVariable`只能在`onLoad`函数内部使用,在`onShow`函数中无法访问它。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值