小程序中var,const,let用法及变量作用范围

var

概念:var申明的变量是全局变量,其作用域为所在的函数内。若想在当前页面所有函数都能调用,要将var变量在page()前声明,文内有介绍。

Page({

  data: {
    
  },
  onLoad: function (options) {
    var k=this
    k.a()
    k.b()
  },
  a:function(){
    var a=4
    console.log("a函数中a="+a)
  },
  b:function(){
    var a=5
    console.log("b函数中a=" +a)
  }

})

操控台打印结果


总结:从上面的测试代码我们可以看出,var 申明变量的作用范围只是在本函数内,在其他函数中是不起作用的。就像上述例子中a方法中的a变量只存在于a函数,对b函数中的a无影响。

let

概念:let申明的变量是局部变量,该变量只会在最靠近{ }内的范围有效,出了{}之后,该变量就不能够再用了,否则会报该变量未定义的错误。也就是说,该变量的作用域为所在的代码块内。

Page({

  data: {
    
  },
  onLoad: function (options) {
    var k=this
    k.a()
  },
  a:function(){
   let i=1
   for(let i=0;i<5;i++)
   {
   console.log("括号中的i="+i)
   }
   console.log("括号外面的i="+i)
  },
})

控制台打印结果

暂无


总结:从上面的测试代码我们可以看出,let申明变量的作用域只存在局部(可以理解为一个中括号内)。一旦出了括号,变量值就不是预先申明的值。

const

概念:一般用于申明常量,一般写在js文件的开头

const x=1
Page({

  data: {
    
  },
  onLoad: function (options) {
    var k=this
    k.a()
    k.b()
  },
  a:function(){
console.log("a函数中x="+x)
  },
  b:function(){
    console.log("b函数中x=" + x)
  }

})

控制台打印结果


总结:可以看出,申明在js头部的const 常量,在整个js中都可以得到该变量的值。那么假设:a函数中申明一个const常量,那么b函数中可以正确打印其值吗?

测试!

Page({

  data: {
    
  },
  onLoad: function (options) {
    var k=this
    k.a()
    k.b()
  },
  a:function(){
    const x = 1
console.log("a函数中x="+x)
  },
  b:function(){
    console.log("b函数中x=" + x)
  }

})

 

 


说明:这里可以看出,a函数中申明的const常量x,在b函数中并不可以正确打印其值,说明其作用域并没有在b中!如果以后需要js中所有的函数都可以使用一个常量,那么就应该在js文件最上方申明const常量。如果要定义全局变量,就要在js文件最上方申明var变量。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值