此博客链接:https://www.cnblogs.com/ping2yingshi/p/14140918.html
1.前言
1.1说明
变量分为两种,一种是局部变量,一种是全局变量。全局变量在小程序中又分为小程序的全局变量和页面中的全局变量。
1.2举例
1.2.1局部变量
在tests函数中定义的test是局域变量。
1.2.2小程序的全局变量
在app.js中App的globalData中定义的变量是小程序的全局变量。
1.2.3页面的全局变量
在某个页面的Page外定义一个变量是页面的全局变量。
2.变量的作用域
2.1说明
局部变量只在定义的函数中有效。
小程序的全局变量是在整个小程序中都有效。
某个页面的全局变量只在某个页面中有效。
2.2举例
2.2.1局部变量
说明
在test函数中定义test,然后在retest函数中调用。
结果
在retest中调用tests中定义的test,程序会报错,表明test没有定义。
2.2.2小程序的全局变量
说明
在小程序中任意一个函数中使用app.globalData.test可以获取到test的值。
结果
打印出小程序中全局变量0。
2.2.3某个页面的全局变量
说明
在某个一个页面中定义一个的全局变量,然后在retest函数中调用页面中的全局变量的值。
结果
打印出页面中全局变量的值2。
在另外一个tests页面调用test页面全局变量中的test变量时,程序会报错,表明test变量没有定义,因为页面变量只在当前页面内有效。
3.变量的生存周期
3.1说明
局域变量的生存周期,当局部变量的函数被执行完,局部变量的生存周期也就结束了。
整个小程序的全局变量的生存周期,从进入小程序开始一直到退出小程序之间,全局变量的生存周期一直存在。
某个页面中的全局变量的生存周期,从小程序进入当前页面一直到退出当前页面,全局变量的生存周期一直存在。
备注:小程序被切换到后台之后到再切换到前台之前,小程序的全局变量和某页面的全局变量的生存周期一直存在。
4.变量何时会被哪些事件改变
4.1说明
局部变量只能在定义它的函数中改变它的值。
小程序的全局变量,在对其操作的事件中,都可以被改变。
页面的全局变量,在当前页面对其操作的事件中,都可以被改变。
4.2举例
4.2.1局部变量
说明
在test函数中定义test等于0,然后修改test的值。
结果
test的值是4。
4.2.2某个页面的全局变量
说明
定义一个页面的全局变量test,在retest函数中改变test的值。
结果
test的值被改变成5。
注意
当把全局变量定义为const常量时,是不被允许的。
4.2.3小程序的全局变量
说明
在retest函数中,修改小程序的变量test值为8.在test函数中查看小程序的全局变量是否被改变。
结果
小程序中的全局变量被修改为8.