We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ES6新增的let命令和const命令和var类似,都是用来声明变量的
let
const
var
声明变量
块级作用域
1.for循环中用let声明的迭代变量每次都是新的变量,
for
var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 6
每一次循环的i其实都是一个新的变量,JavaScript引擎内部会记住上一轮循环的值,初始化本轮的变量i时,就在上一轮循环的基础上进行计算
JavaScript
2.for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。
for (let i = 0; i < 3; i++) { let i = 'abc'; console.log(i);} // abc// abc// abc
a声明了两次,表明函数内部的变量i与循环变量i不在同一个作用域,有各自单独的作用域
a
i
const命令定义时必须初始化 const定义的变量为原始值时不可改变,为引用值时对象的属性可以改
###顶层对象的属性
window
global
function
class
globalThis
欢迎star,持续更新ing... ES6总结系列参考自阮一峰《ES6入门教程》
下一篇:ES6总结系列之 变量的解构赋值 篇
The text was updated successfully, but these errors were encountered:
No branches or pull requests
ES6总结系列之let、const篇
let命令和const命令
ES6新增的
let
命令和const
命令和var
类似,都是用来声明变量
的区别
1.
let
const
只在声明的块级作用域
生效2.
let
const
预编译声明不会提前let
const
命令时,区块中的let
const
命令声明的变量从一开始就形成了封闭作用域,凡是在声明前使用都会报错3.不可以重复定义
let
const
在同一个代码块不可以重复定义,否则会报错let命令
1.
for
循环中用let
声明的迭代变量每次都是新的变量,每一次循环的i其实都是一个新的变量,
JavaScript
引擎内部会记住上一轮循环的值,初始化本轮的变量i时,就在上一轮循环的基础上进行计算2.
for
循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。a
声明了两次,表明函数内部的变量i
与循环变量i
不在同一个作用域,有各自单独的作用域const命令
const
命令定义时必须初始化const
定义的变量为原始值时不可改变,为引用值时对象的属性可以改###顶层对象的属性
window
对象,window
也有实体含义,指的是浏览器的窗口对象global
对象①
var
命令和function
命令声明的全局变量,依旧是顶层对象的属性②
let
命令,const
命令,class
命令声明的全局变量,不属于顶层对象的属性globalThis
对象,2020新增顶层对象,在任何环境下globalThis
都存在,都可以拿到顶层对象,指向全局环境下的this欢迎star,持续更新ing...
ES6总结系列参考自阮一峰《ES6入门教程》
下一篇:ES6总结系列之 变量的解构赋值 篇
The text was updated successfully, but these errors were encountered: