ES6 let和const详解及使用细节
来源:互联网 发布:在乎山水之间的乎 编辑:程序博客网 时间:2024/06/08 15:10
ES6之前javascript只有全局作用域和函数作用域,所以经常会遇到变量提升了或者使用闭包的时候出错的问题。
所有a[i]都会输出10;
var arr=[];for (var i=0;i<10;i++){ arr[i]=function(){ console.log(i); };}
变量提升,输出undefined。
function showName(){console.log(name);var name = "Jhon";}
ES6引入了let和const关键字,从而使javascript像其他语言一样拥有了块级作用域。没有其他语言编程经验的或者由于长期使用ES5编码的习惯问题,有一些细节的地方仍然需要注意一下。
首先说一下let:
let让变量具有了块级作用域,像这样就不会共享变量i,而是输出0-9的数字。
let arr=[];for (let i=0;i<10;i++){ arr[i]=function(){ console.log(i); };}使用let需要注意:
- 使用let申明的变量具有块级作用域,即变量声明前后的{}。
- let声明的全局变量不是全局对象的属性,不可通过window.变量名访问,理论上存在于一个顶级的js代码块中。
- 形如for ( let i=0....)的循环再每次迭代时都为i创建新的绑定。所以循环中如果有一个闭包,那么闭包将捕获一个循环值的不同副本,不会共享一个变量。
- let声明的变量直到控制流到达该变量定义的位置时才被装载,所以到达之前使用会触发错误,即不能先使用后声明。
- 用let重复声明一个变量会发生语法错误。
const常量:const和和let类似,只是const声明的变量只可以在声明时赋值,不可随意修改,不然会报错const MAX_SIZE = 300; //正确MAX_SIZE = 200; //错误其他注意事项和let一样
0 0
- ES6 let和const详解及使用细节
- 【ES6】let和const
- es6 let和const
- ES6-let和const
- es6 let和const
- 【ES6系列】let和const
- ES6学习-let和const
- ES6 中的 let 和 const
- es6中的const和let
- es6 let 和 const 命令
- ES6的let和const
- ES6 let和const命令
- es6浅学-let和const
- 在JavaScript ES6中使用let和const定义变量
- 深入浅出ES6(十四):let和const
- ES6学习--let和const命令
- 《ES6入门》let和const总结
- ES6学习笔记之《let 和 const》
- 网卡驱动-设置组播mac地址
- 文章标题
- 需要学习的新东西记录
- CodeForces 641 C.Little Artem and Dance(水~)
- 获取sql serverl数据库第10到20条数据
- ES6 let和const详解及使用细节
- 07_数据绑定
- PTA——宿舍谁最高
- tensorflow张量详解
- Java构造函数内部的多态行为可能带来的问题
- Unity&网络--HLAPI(2):Unity HLAPI NetworkManager与玩家NetworkBehaviour的各回调函数的调用时间序列
- 笔记4-JAVA的初学浅识(Java 对象和类)
- 基于对评论进行分类的持续运行模型
- maven多模块管理jetty插件运行