网站没有域名设置吗,设计师网盘,网站开发项目税率,手机怎么自己做网站ES6的好处 ES6的出现为我们前端带来了很多方便之处#xff0c;以前用js几十行才实现的一个功能#xff0c;ES6几行代码就能简单的实现#xff0c;ES6新增的一些特性#xff0c;改变了很多弊端之处#xff0c;比如新出现的let、const#xff0c;实现了块级作用域功能…ES6的好处 ES6的出现为我们前端带来了很多方便之处以前用js几十行才实现的一个功能ES6几行代码就能简单的实现ES6新增的一些特性改变了很多弊端之处比如新出现的let、const实现了块级作用域功能减少了以前var的全局变量箭头函数代替词法作用域的this 等等在这里就不再做更多的举例子想了解更多请参考 https://www.w3cschool.cn/ecmascript/pgms1q5d.html今天主要跟大家一起了解一下var、let、const之间的区别
let let是ES6新增的命令用来声明变量跟var声明变量一样。但是它俩有很大的区别。
let、const声明的变量仅在块级作用域内有效var 声明变量是全局的没有块级作用域功能 let 、const 不存在变量提升 , var 存在变量 let 、const不能在同一块级作用域内重复申请 用let定义变量运行代码如下
const arr [1, 2, 3, 4]
for (let i 0; i arr.length; i) {
console.log(arr[i])
}console.log(i);1 2 3 4 5
以上报错i未定义说明let定义变量i只在所在的块作用域内起作用
var 定义变量运行代码如下
var arr [1, 2, 3, 4] for (var i 0; i arr.length; i) { console.log(arr[i]) } console.log(i); 1 2 3 4 5
以上运行结果说明var 定义变量 没有块级作用域i在块级作用域照样可以输出结果 其实var在函数内命名的变量是只在整个函数作用域内起作用出了这个函数作用域就不能用了例如下面
function testVar () {var i 2console.log(函数内: i)}testVar()console.log(函数外: i)1 2 3 4 5 6
很明显在函数外输出变量i的时候报i未定义var在函数内命名的变量是只在整个函数作用域内起作用
let不像var那样会发生“变量提升”现象。所以变量一定要在声明后使用否则报错。 运行代码如下
console.log(arg1)
console.log(arg2)
var arg1 test
let arg2 test21 2 3 4
变量arg1用var命令声明会发生变量提升即脚本开始运行时变量arg1已经存在了但是没有值所以会输出undefined。变量arg2用let命令声明不会发生变量提升。这表示在声明它之前变量arg2是不存在的这时如果用到它就会抛出一个错误。
var 重复申明变量的运行结果
var arg1 testconsole.log(var第一次申明 arg1)var arg1 test2console.log(var第二次申明 arg1)1 2 3 4
let 重复声明变量代码
let arg2 ‘test’ console.log(‘let第一次申明’ arg2) let arg2 ‘test2’ console.log(‘let第二次申明’ arg2) 1 2 3 4
let在同一块作用域内不能重复声明变量var 可以重复声明
const const与let上面特点一样但是也有不同点let声明的是变量const声明的是常量只读修改值会报错const保存的是内存地址,可以给对象或数组添加属性或元素但是不能重新复写。 ———————————————— 版权声明本文为CSDN博主「前端岚枫」的原创文章遵循 CC 4.0 BY-SA 版权协议转载请附上原文出处链接及本声明。 原文链接https://blog.csdn.net/lfcss/article/details/103869080