摘要:基本用法所声明的变量,只在命令所在的代码块内有效。在循环中适合使用不存在变量提升不像那样会发生变量提升现象暂时性死区只要块级作用域内存在命令,它所声明的变量就绑定这个区域,不再受外部的影响。块级作用域实际上为新增了块级作用域。
1 let
基本用法
所声明的变量,只在let命令所在的代码块内有效。
{ let b = 100; console.log(b); //100 } console.log(b); //Error
在for循环中适合使用let
不存在变量提升
let不像var那样会发生“变量提升”现象
{ console.log(a); //undefined var a = 10; console.log(b); //b is not defined let b = 100; }
暂时性死区
只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。
var a = 100; { a = 10; //这里的a是let定义的a,而不是var定义的a,因为没有变量提升,所以报错 let a; }
不允许重复声明
let不允许在相同作用域内,重复声明同一个变量。
{ let a; let a; //Identifier "a" has already been declared }2 块级作用域
let实际上为JavaScript新增了块级作用域。
let a = 100; { let a = 10; console.log(a); //10 } console.log(a); //1003 const命令
基本用法
const也用来声明常量,一旦声明不可改变
const a = 100; a = 10; //Assignment to constant variable.
只声明不赋值也会报错
const a; //Missing initializer in const declaration
也存在块级作用域
{ const a = 10; console.log(a); //10 } console.log(a); //a is not defined
同样存在暂时性死区
{ console.log(a); //a is not defined const a = 10; }
也不可重复声明
{ const a = 10; const a = 100; //Identifier "a" has already been declared }
指向复合类型变量地址不变,但对象本身可变
{ const a = {}; a.name = "Oliver"; console.log(a.name); //Oliver a = {}; //Assignment to constant variable. }
Object.freeze冻结对象
{ const a = Object.freeze({}); console.log(a); //Object {} a.name = "Oliver"; //不起作用 console.log(a); //Object {} }4 全局对象的属性
let、const和class命令声明的全局变量不属于全局对象的属性
let a = 10; console.log(a); //10 console.log(window.a); //undefined
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/79062.html
摘要:数组的解构赋值允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。如果变量名与属性名不一致,必须写成下面这样。 1 数组的解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 基本用法 { var [a,[b,c],d,,...f] = [1,[2,3],4,5,6,7]; console...
摘要:关于的入门了解新增模板字符串为提供了简单的字符串插值功能箭头函数操作符左边为输入的参数,而右边则是进行的操作以及返回的值。将对象纳入规范,提供了原生的对象。增加了和命令,用来声明变量。 关于ES6的入门了解 新增模板字符串(为JavaScript提供了简单的字符串插值功能)、箭头函数(操作符左边为输入的参数,而右边则是进行的操作以及返回的值Inputs=>outputs。)、for-o...
摘要:入门一前言由于最近本人在学习,做一些笔记能够更好的熟悉,就趁此机会来写一篇关于的新人学习摘要吧。的作用域与命令相同只在声明所在的块级作用域内有效。块级作用域新增方式和实际上为新增了块级作用域。同时,函数声明还会提升到所在的块级作用域的头部。 ECMAScript6/ES6 入门 一、前言 由于最近本人在学习ES6,做一些笔记能够更好的熟悉,就趁此机会来写一篇关于ES6的新人学习摘要吧。...
摘要:第二个参数指定修饰符,如果存在则使用指定的修饰符。属性表示是否设置了修饰符属性的属性返回正则表达式的正文的属性返回正则表达式的修饰符字符串必须转义,才能作为正则模式。 1 RegExp构造函数 ES6 允许RegExp构造函数接受正则表达式作为参数。第二个参数指定修饰符,如果存在则使用指定的修饰符。 var regexp = new RegExp(/xyz/i, ig); consol...
阅读 2887·2021-11-17 09:33
阅读 1584·2021-10-12 10:13
阅读 2338·2021-09-22 15:48
阅读 2190·2019-08-29 17:19
阅读 2572·2019-08-26 11:50
阅读 1538·2019-08-26 10:37
阅读 1715·2019-08-23 16:54
阅读 2900·2019-08-23 14:14