简单说说ES6新特性

2022-03-21 10:10:14 浏览数 (1)

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

ECMAScript和JS的关系 ECMAScript是标准,JS是实现

  • 类似于HTML5是标准,IE,chrome是实现    例如国家定了医用口罩标准 (需要过滤XX,等等各种参数),咱们买的正规口罩是实现
  • 目前ECMAScript除了JS还没别的实现,所以ECMAScript==JS也说得 过去
  • ES6发布于2015年发布,所以也可以叫es2015 去年的ES2021 是ES12 但是主要的改变是在es6,这几年的东西都增加的不多,所以把ES6以及 以后的版本统称为es6也合理,ES2022也也即将推出

今天对我目前所知的并且常用的一些做一个总结,适合处于新手村和即将走出新手村的兄弟观看学习,同时也欢迎各位大佬补充

◆ 1、声明变量

 首先说说在没有es6之前存在的问题,也就是var的问题

  1. 可以重复定义
  2. 无法限制修改,有些东西不会变化,没常量
  3. 没有块级作用域,只有函数作用域
  4. 变量提示带来的混乱

  es6新增了两个声明变量关键字,let和const    这两个关键字就是为了解决es5存在的问题

 let

  (1)let 声明变量时只在其块级作用域中有效

代码语言:javascript复制
1 {
2   let a = 10;
3   var b = 1;
4 }
5 console.log(a); //出错 not defined
6 console.log(b); //1

 在es5中如果要实现块级作用域,通常借助立即执行匿名函数来实现

代码语言:javascript复制
1 (function(){
2   var a = 1;
3 }());
4 console.log(a); //出错,not defined

 但是有了let之后,就可以解决这么问题

  (2)没有变量提升

  也正是如此,变量必须在声明后使用,否则就会报错,这里对比var经典的变量提升

代码语言:javascript复制
//let
console.log(a); //出错, not defined
let a = 1;
代码语言:javascript复制
//var
console.log(a); //undefined
var a =1;

(3)不可以在相同作用域内重复声明同一个变量,也包括不能和var,const变量名重复

代码语言:javascript复制
let a = 1;
let a = 1; //出错 let不可重复声明

var b = 1;
let b = 1; //出错 let不可重复声明

const c = 1;
let c = 1; //出错 let不可重复声明

(4)在块级作用域内,若存在用let命令声明的变量,则所在区块对该变量形成封闭作用域,也就是该变量无视外部的同名变量。而又因为不存在变量提升,所以在该区块中,不能在声明前使用该变量。

代码语言:javascript复制
var a  = 1;
if(true){
  a = 2; //出错 not defined
  let a; 
}
代码语言:javascript复制
var a = 1;
if(true){
  a = 2; //var允许重复声明,而且变量提升,故a=2正常赋值
var a;
}

const

const和let的区别在于const声明的变量不能修改,let声明的变量可以修改

代码语言:javascript复制
     const name = "


	

0 人点赞