(精华)2020年6月29日 JavaScript高级篇 ES6(let,const,var)

1. es6的背景介绍

ES6是什么? ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了
和js之间的关系 ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScript的实现。 作用
是使得JavaScript语言可以用来编写大型的复杂的应用程序,成为企业级开发语言。(更具模块化)

不存在变量提升

console.log(a); // undefined
var a = 123
// es6 
console.log(b);
let b = 456;
console.log(b);

暂时性死区

//死区
var tep = 890;
 if(true){
     
     tep = 'abc'
     let tep
 }
 // typeof 不再是完全正确的
 console.log(typeof c);
 let c;
 //不允许重复声明
 let e = 123;
 let e = 456// 'e' has already been declared

2 const 特殊的地方

2.1. 声明常量不能变

    const a = 123;
    a = '123'
    const b = true;
    b = false

2.2. 本质

    // 引用数据类型可以变变得是堆里面的内容 不变的是地址

    const obj = {
     name:'chris',age:33}
            
    console.log(obj);

    obj = {
     name:'Chris',age:33}

2.3. 可以冻结对象

    // const foo = Object.freeze({})
    // foo.name = '大白菜'
    // console.log(foo);
    'use strict'
    const foo = Object.freeze({
     })
    foo.name = '大白菜'

2.4 全局的缺陷

     // new Array()
    console.log(window.Array);
    var Array = '这是数组'
    console.log(window.Array);
    
    var a = '123'
    console.log(window.a); // 123
    
    let b = '全局'
    console.log(window.b); // undefined
    // let 提出后 全局变量和顶层对象的属性 脱钩

你可能感兴趣的:(#,Javascript,高级篇,前端)