永利皇宫402知识点总括柒

永利皇宫402 3
永利皇宫402

ES陆显著规定,若是区块中留存letconst指令,这些区块对那么些命令证明的变量,从壹起首就变成了封闭作用域。凡是在宣称从前就选用这个变量,就能够报错。

let的特点

一.不设有变量升高

永利皇宫402 1

变量提高.png

永利皇宫402 2

结果.png

var 在宣称变量 c 从前,c 已经存在了只是值为undefined;而 let
未有变量升高这种气象。

2.“一时性死区”(TDZ):代码块内,使用 let
命令注解变量前,该变量都是不可用的。

ES六明确规定,如若区块中设有let和const命令,这些区块对那个命令表明的变量,从一开首就变成了封闭功能域。凡是在宣称在此之前就动用那个变量,就能够报错。

永利皇宫402 3

TDZ.png

ES六 规定近期死区和let、const语句不出新变量升高
权且死区的精神正是,只要壹进入当前作用域,所要使用的变量就早已存在了,然则不可获取,唯有等到证明变量的那1行代码出现,技艺够获得和使用该变量。

三.不容许再一次评释变量

function a(x){
  let x   //Uncaught SyntaxError: Identifier 'x' has already been declared
}
function b(x) {
  {
    let x  // 不报错
  }
}

四.let 提供了一种块级功能域
ES5 只有全局功用域和函数效率域,ES6新添了块级功效域。

ES陆 允许块级成效域的任性嵌套。
内层作用域能够定义外层成效域的同名变量。
块级成效域的面世,实际上使得获得普遍应用的立时施行函数表明式(IIFE)不再供给了。

 {{{{{{{{let age=90;console.log(age)}}}}}}}}  //90
 {{{{{{{{{let age=90}console.log(age)}}}}}}}} 
  //Uncaught ReferenceError: age is not defined 块级作用域
  // 以前的IIFE 
  (function(){
        temp=333;
   })()
   console.log(temp)    //333
  //现在使用let可以这样写
   {
        let temp=333
   }

1、实现块功用域

let命令

let作用是宣称变量,平时应用在for循环里,注解i

//let声明的变量,只在代码块里有效
        {
            let a=20;
            var b=99;
            console.log(a)
        }
            console.log(b)
            console.log(a) //a is not defined

2、不设有变量提高

顶层对象属性和全局变量

var命令和function命令注脚的全局变量,如故是顶层对象的属性;另一方面规定,let命令、const命令、class命令评释的全局变量,不属于顶层对象的性质。

var num1=12;
console.log(window.num1)    //12
let num2=16;
console.log(window.num2)    //undefined

const

const表明常量,一旦注解,必须立时赋值,并且值无法更改。

const num;      //Uncaught SyntaxError: Missing initializer in const declaration
const num=22;
num=334;        //Uncaught TypeError: Assignment to constant variable.

const的成效域与let命令同样:只在宣称所在的块级功用域内卓有成效。
const命令评释的常量也是不升级,一样存在近来性死区,只可以在宣称的职务前边使用。
const评释的常量,也与let同样不可重复证明。

注意:const变量值不可能更换的缘由:指向的内部存款和储蓄器地址无法更动。

ES5 注脚变量的艺术(贰种):var命令和function命令。
ES6注脚变量的法子(四种):var命令、function命令、let命令、const命令,import命令和class命令。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图