Es6插章(一)

本文深入探讨了ES6(ECMAScript 6)的关键特性,包括let和const关键字的使用,变量的解构赋值,字符串及数值的扩展,数组与对象的增强功能,以及函数的新特性。通过具体示例,解释了let和const如何解决变量提升问题,以及它们在块级作用域中的表现。同时,文章还介绍了ES6的兼容性现状和转换工具Babel。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我也觉得自己写的有些杂了

从Node->Vue的部分解析->React的功能

现在到Es6了 我会把Vue和Es6同步更新的

其实Es6我还是推荐大家去观看手册
但为了方便读者可以多方理解和了解到Es6,我还是写一部分

ECMAScript6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

ES6都做了哪些扩展?

Let和const关键字
变量的解构赋值
字符串,数值的扩展
数组,对象的扩展
函数的扩展
for...of
先从let和const这两个关键字看起。
let关键字类似于var,但是他又和var有些不同,主要有两点,
避免了变量提升
只在块级作用域内起作用
复制代码

ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。

ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。

其中

  1. 兼容问题

    现在浏览器对Es6的兼容已经很好了,但是肯定还有不兼容的浏览器,目前常见的兼容转换工具是Babel。

  2. 什么是代码块

    任何一对花括号(这玩意:{ })中的语句都属于一个块,在花括号里面用let定义的所有变量在花括号外都是不可见的,我们称之为块级作用域

  3. 什么是变量提升

    在加载程序之前,浏览器会做一些准备工作,变量、函数表达式——变量声明,默认赋值为undefined

现在我们开始从头开始讲述Es6

1.const 与 let 变量

function getClothing(isCold) {
 if (isCold) {
    var freezing = 'Grab a jacket!';
  } else {
    var hot = 'It's a shorts kind of day.';
    console.log(freezing);
  }
}
复制代码

如上所示?var会带来不必要的麻烦

运行getClothing(false)后输出的是undefined,这是因为执行function函数之前,所有变量都会被提升, 提升到函数作用域顶部.

let与const声明的变量解决了这种问题,因为他们是块级作用域, 在代码块(用{}表示)中使用let或const声明变量, 该变量会陷入暂时性死区直到该变量的声明被处理.

2.let、const 和 block 作用域

let 允许创建块级作用域,ES6 推荐在函数中使用 let 定义变量,而非 var:
var a = 2;
{
  let a = 3;
  console.log(a); // 3
}
console.log(a); // 2
复制代码

同样在块级作用域有效的另一个变量声明方式是 const,它可以声明一个常量。ES6 中,const 声明的常量类似于指针,它指向某个引用,也就是说这个「常量」并非一成不变的,如:

 const ARR = [5,6];
 ARR.push(7);
 console.log(ARR); // [5,6,7]
 ARR = 10; // TypeError
复制代码

有几个点需要注意:

let 关键词声明的变量不具备变量提升(hoisting)特性
let 和 const 声明只在最靠近的一个块中(花括号内)有效
当使用常量 const 声明时,请使用大写变量,如:CAPITAL_CASING
const 在声明时必须被赋值
复制代码

总结来讲:今天讲的东西不难理解 部分是基础概念理论

转载于:https://juejin.im/post/5cffa071518825225162d1f1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值