提前声明:此文章仅仅用于个人成长学习的记录。
内容部分摘抄自:
一:https://github.com/qianguyihao/Web/tree/master/05-JavaScript%E4%B9%8BES6%E8%AF%AD%E6%B3%95
二:阮一峰 | ECMAScript 6 入门。
三:https://segmentfault.com/a/1190000020678240
ES6 的变量声明
1:var、let 、const用来声明变量。
1.1:var,定义全局变量( var 是 variable 的简写)。
1.2: let,定义局部变量,替代 var。
1.3: const,定义常量(定义后,不可修改)。
2:作用域:
2.1:全局作用域
· 2.1.1:var在全局作用域中定义后自动赋值给window,可以使用`window.""` 来获取出来,容易污染数据
2.2:函数作用域 function() {}
2.3:块级作用域 {}
3:let 和 const 的特点【重要】
3.0:赋值使用
const命令
声明常量后必须立马赋值
let命令
声明变量后可立马赋值或使用时赋值
3.1:支持块级作用域
3.2:不存在变量提升
解释:和暂时性死区有共同特定,变量不存在变量提升,都是需要先声明再使用
3.3:禁止重复声明
解释:在同一作用域中重复声明同一变量
3.4:暂时性死区
解释: 使用 let/const 声明的变量,会使区块形成封闭的作用域。若在声明之前使用变量,就会报错。
const name = 'qianguyihao';function foo() { console.log(name); const name = 'hello';}foo(); // 执行函数后,控制台报错:Uncaught ReferenceError: Cannot access 'name' before initialization
/**
* 一共说明两个问题:
* 1:变量"name"在函数foo外部定义了的,在函数内部重新定义一个同名的"name"变量。函数会形成一个封闭的作用域,唯一的变量为函数内部中的"name"变量。如果没有在foo函数中再次定义"name"变量就不会报错了
* 2:这个不是重复声明变量,他们在不同的作用域中
*
*/
相反"var"声明:存在变量提升、可以重复声明、不支持块级作用域
原文转载:http://www.shaoqun.com/a/512336.html
邮乐:https://www.ikjzd.com/w/1776
海鹰数据:https://www.ikjzd.com/w/2539
提前声明:此文章仅仅用于个人成长学习的记录。内容部分摘抄自: 一:https://github.com/qianguyihao/Web/tree/master/05-JavaScript%E4%B9%8BES6%E8%AF%AD%E6%B3%95 二:阮一峰|ECMAScript6入门。 三:https://segmentfault.com/a/11900
Zozo:Zozo
stylenanda:stylenanda
10年跨境电商创业者自白:从谷底到全年盈利 海淘复苏:10年跨境电商创业者自白:从谷底到全年盈利 海淘复苏
惠州十字水生态度假村好玩吗?:惠州十字水生态度假村好玩吗?
北京首都机场大巴到北京南站多长时间?有多远?:北京首都机场大巴到北京南站多长时间?有多远?
No comments:
Post a Comment