小程序

微信小程序中var、let、const的用法及区别

2022-11-27

微信小程序中var、let、const的用法及区别


小程序在js中经常会申明变量,但是有时用var,有时用let,有时又用const,都有啥区别呢?


var

概念:var申明的变量是全局变量,其作用域为所在的函数内。

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)

  }

})


操控台打印结果

a函数中a=4

b函数中a=5

总结:从上面的测试代码我们可以看出,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)

  },

})

控制台打印结果:

括号中的i=0

括号中的i=1

括号中的i=2

括号中的i=3

括号中的i=4

括号外面的i=1


总结:从上面的测试代码我们可以看出,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)

  }

})