美文网首页es6
深入理解ES6之var,let,const区别

深入理解ES6之var,let,const区别

作者: IDO0 | 来源:发表于2018-03-07 14:21 被阅读0次

第一:块级范围内

var变量提升(不存在以下的问题)
let块级作用域,指定块的外部无法访问
const常量声明块级作用域,不会发生变量提升,声明后不可以改变因此需要初始化.(对于一个对象而言不可改变是指引用不可变,内容可以改变相当于java的final关键字)
1:禁止重复声明
2:暂时性死区
3:不在块级作用域范围内使用按照undefined处理

console.log(typeof value)//因为发生在块级作用域外面,不会因为暂时性死区而崩溃 
if(true){
   let value = "blue"
}

第二:循环范围内

1:let没有任何问题
2:var循环中的使用

var funcs = [];
for(var i=0;i<10;i++){
  funcs.push(functiong(){console.log(i)})
}
func.forEach(function(func){
  func()
});

因为变量i在循环的每次迭代中都被共享了 因此最后调用后的值会是打印10此10
3:循环内的常量声明
const在for循环中使用时第一次正常运行第二次i++时,会因为试图修改常量报错;
const能够在for-in与for-of循环内工作,因为循环为每次迭代创建了一个新的变量绑定而不是去试图修改已绑定的变量值。

第三:全局范围内

1:var会覆盖掉之前存在的同名属性,let和const不会污染全局属性

总结:

默认情况下应该使用const,只有知道变量需要被改变时才使用let,这样预期外的改动都可以算作是bug处理。

相关文章

  • react 入门基础(一)之ES6

    ####ES6 let const var 三者的区别 ### 1. let const 不能重复声明变...

  • javascript碎片知识000

    const let var 3者的区别。 const 和 let 为es6新增的定义变量的关键字。 var存在...

  • 总结一下前端常见javascript基础面试题:

    1.var ,let 和const的区别: let和const是es6新增的语法, let和var都可以定义变量,...

  • (JS)

    ES6 let、const和var的区别 let和const声明变量不存在变量提升 let和const不能重复声明...

  • js常见知识点--第二篇

    一、var 、let 、const的区别 var是ES5提出的,let和const是ES6提出的。var不存在块级...

  • es6总结一

    es6基础 let和const命令 let和const用于声明变量let跟var的区别 1、let定义过的变量不能...

  • 深入理解ES6之var,let,const区别

    第一:块级范围内 var变量提升(不存在以下的问题)let块级作用域,指定块的外部无法访问const常量声明块级作...

  • Android菜鸟学习js笔记 一

    一、var,const,let区别? var 变量,const 常量,let块级变量。

  • es6

    1、let 和const(定义变量) (1)var 、let 、const的区别 a、作用域区别var 变量声明会...

  • 2018-12-20-周末学习

    ES6的深入认识(1) let&const 首先列出我对于let和cons起初粗浅的认识 let ≈ var,co...

网友评论

    本文标题:深入理解ES6之var,let,const区别

    本文链接:https://www.haomeiwen.com/subject/axpjfftx.html