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

本文深入探讨ES6(ECMAScript 6)的引入背景及关键特性,包括变量声明的改进、const常量的使用限制与特性,以及其对模块化编程的支持。ES6的推出旨在提升JavaScript的大型应用开发能力,使语言更趋标准化与企业级。

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 提出后 全局变量和顶层对象的属性 脱钩
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愚公搬代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值