前言
Java Script,由于悠久的历史和早期作者洒脱的性格,创建变量的方式还真是多,ES6标准新增的方式完全是为了弥补早期设计失误。以下链接为MDN官方,JS官方标准提及的3种方式。
声明一个变量,可同时将其初始化为一个值。
声明一个块级作用域的本地变量,可同时将其初始化为一个值。
声明一个只读的命名常量。
一、不写任何关键字
不写关键字时,创建的都是全局变量,浏览器环境为Window对象的属性,Node环境为Global的属性,特别注意的是在函数中不写关键字的变量,也是全局变量
name = "baby";
function test() {
name = "baby";
}
二、var声明变量
使用var声明变量时,JS引擎会做变量提升,无论是在模块中,还是函数中,这些定义的变量会被提升到作用域的最上方,也就是说我们var变量写在哪里,都相当于写在了最上方
var name = "baby";
function test() {
var name = "baby";
}
三、let声明变量
正是由于var的变量提升,作者又发明了let,它不会做变量提升,let声明的变量,局限在所声明的代码块中,现在我们使用let非常多哦
let name = "baby";
function test() {
let name = "say hello";
}
四、const声明变量
const声明的变量是常量,不能再去修改
const name = "baby";
总结
1、根据JS标准,不写任何关键字和var是最早声明(创建)变量的方式,let和const都是后续标准中增加的,大家如果还想继续深入,去MDN上看说明即可。
2、目前最长用的是let,它相比var,取消了变态的变量提升。。。
3、如果你确定一个变量值不变,那就用const即可
4、切忌不写任何关键字的那种方式去定义变量,那种方式就是给自己埋雷。。。
717

被折叠的 条评论
为什么被折叠?



