速看:微信小程序--var、let、const的用法及區別

2023-01-12 16:13:53 來源:51CTO博客

前言

初學小程序時,在js中經常會申明變量,但是有時用var,有時用let,有時又用const。開始也沒有仔細去研究區別,反正一律就用var(現在看來,以前的自己好懶)

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)  }})

操控臺打印結果


(資料圖)

總結:從上面的測試代碼我們可以看出,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=1Page({  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 = 1console.log("a函數中x="+x)  },  b:function(){    console.log("b函數中x=" + x)  }})

控制臺打印結果

說明:這里可以看出,a函數中申明的const常量x,在b函數中并不可以正確打印其值,說明其作用域并沒有在b中!如果以后需要js中所有的函數都可以使用一個常量,那么就應該在js文件最上方申明const常量。

標簽: 可以看出 作用范圍 局部變量

上一篇:LeetCode刷題(39)~丑數
下一篇:最新消息:Oracle SQL 兩個日期類型毫秒值求差,日期轉毫秒,時間差(ms)自定義函數解決毫秒差