Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

ES6 学习笔记 PDF 下载


分享到:
时间:2020-07-07 15:48来源:http://www.java1234.com 作者:小锋  侵权举报
ES6 学习笔记 PDF 下载
失效链接处理
ES6 学习笔记 PDF 下载

本站整理下载:
提取码:hu8c 
 
 
相关截图:
 
主要内容:

块级绑定
var声明变量的问题
使用var声明变量
1. 允许重复的变量声明:导致数据被覆盖
2. 变量提升:怪异的数据访问、闭包问题
3. 全局变量挂载到全局对象:全局对象成员污染问题
// 1. 允许重复的变量声明:导致数据被覆盖 var a = 1; function print(){ console.log(a) }//假设这里有一千行代码 var a = 2; print(); // 2. 变量提升:怪异的数据访问 if (Math.random() < 0.5) { var a = "abc"; console.log(a); }else {console.log(a); }console.log(a); // 2. 变量提升:闭包问题 var div = document.getElementById("divButtons") for (var i = 1; i <= 10; i++) { var btn = document.createElement("button"); btn.innerHTML = "按钮" + i; div.appendChild(btn); btn.onclick = function () { console.log(i); //输出11 } }// 循环结束后,i:11
// 3. 全局变量挂载到全局对象:全局对象成员污染问题 var abc = "123"; console.log(window.abc); var console = "abc"; console.log(console) var name = "abc";
使用let声明变量
ES6不仅引入let关键字用于解决变量声明的问题,同时引入了块级作用域的概念
块级作用域:代码执行时遇到花括号,会创建一个块级作用域,花括号结束,销毁块级作用域
声明变量的问题
1. 全局变量挂载到全局对象:全局对象成员污染问题
let声明的变量不会挂载到全局对象
let a = 123; //let a = 456; // 检查到,当前作用域(全局作用域)已声明了变量a //let a = 123; function test(){ let a = 456; console.log(a)//456 }test(); 2. 允许重复的变量声明:导致数据被覆盖
let声明的变量,不允许当前作用域范围内重复声明
在块级作用域中用let定义的变量,在作用域外不能访问
let a = 123; //全局作用域定义a { let a = 456; //块级作用域定义a console.log(a); //使用的是块级作用域中的a }console.log(a) if (Math.random() < 0.5) { let a = 123; //定义在当前块级作用域 console.log(a) //当前块级作用域中的a }else {//这是另外一个块级作用域,该作用域中找不到a console.log(a) }console.log(a); 3. 变量提升:怪异的数据访问、闭包问题
使用let不会有变量提升,因此,不能在定义let变量之前使用它
底层实现上,let声明的变量实际上也会有提升,但是,提升后会将其放入到“暂时性死区”,如果访
问的变量位于暂时性死区,则会报错:“Cannot access 'a' before initialization”。当代码运行到该
变量的声明语句时,会将其从暂时性死区中移除。
console.log(a) let a = 123;
在循环中,用let声明的循环变量,会特殊处理,每次进入循环体,都会开启一个新的作用域,并且将
循环变量绑定到该作用域(每次循环,使用的是一个全新的循环变量)
在循环中使用let声明的循环变量,在循环结束后会销毁

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐