ES6基础常见知识点

ES6来源

ES:ECMAScript的简写,ECMAScript是一个语言标准 ES6:是ECMAScript的第六个版本

ECMAScript与JavaScript的关系
ECMAScript是一个语言标准,JavaScript中的语法(如if、var…)只要符合这个标准,就可在JS中运行,就可以在浏览器中运行。

JavaScript = ECMAScript + WebApi(DOM + BOM)

ES6发展史

年份 版本 发生事件
1996年 ES1.0 NetScape公司将JS交给了一个叫ECMA的组织,ES才正式出现
1998年6月 ES2.0 发生了一些小的修改
1999年12月 ES3.0 比较成功,得到了比较多人的支持
2007年 ES4.0 草案发布,之后就被废除
2008年 7月 ES4.1 相当于严重缩水的ES4.0 ,目前使用最多的版本
2009年 ES5.0 正式发布,草案直接指向ES6.0
2011年 ES5.1 正式发布,成为ISO国际标准
2013年3月 ES6.0 草案冻结,不再添加新功能
2013年12月 ES6.0 草案发布
2015年6月17日 ES6.0 正式发布,又称为ES2015
2016年 ES7 就不在使用版本号,用年份的代替

新增属性
let声明变量

1、let声明的变量不会挂载在window中,不会造成全局变量污染;
2、let不能重复声明;
3、let不会声明提前(人为看到是没有提前,实则是有声明提前,只是提前在暂时性的死区当中);
4、本身只要函数作用域、全局作用域,然后新增了一个块级作用域{},用在例如for循环中。

const声明常量

  • const声明常量时,声明和赋值要同时进行,并且不允许改变储存空间的地址
  • 一旦声明之后, 值不能修改,不允许改变内存空间的地址
  • 与let一样新增了块作用域{}

暂存死区

var a = 9;

if(1){
    a = 6; //在当前块作用域中存在a,使用let/const声明的情况下,a赋值为6时,只会在当前作用域中找变量a,
    //这时因为还没有声明,控制台会输出错误提示Error:a is not defined
    let a = 3;
}

同一作用域下let和const不能声明同名变量
在大型公司进行项目整改时,将代码从ES5迁移到ES6中,最好使用const,少使用let,因为常量的效率比变量高

解构赋值

两边必须是合法的值
两边的结构必须要一致
声明和赋值不能分开

解构默认值

let {a = 6, b = 3} = {a = 8}; // a = 8  b = 3;

针对数组的解构赋值

//两种情况:
//完全解构
//不完全解构

//不完全解构的情况
let [a = 1, b] = [];  // a = 1, b = undefined

let [a, [b], c] = [1, [3, 6], 9];//a = 1  //b = 3   //c = 9

对象的解构赋值

let obj = {
			name : "yaya",
			age : 18,
		}
		let name,age;
		({name,age} = obj);
		console.log(name,age)// yaya 18

字符串模板

增强版的字符串,可以用反引号(`)标识,可当作字符串使用,也可定义多行字符串
在字符串中嵌入变量或者函数,将变量名在${}中
可以转义字符

//字符串的拼接 + 变量
//`${表达式}字符串`
var name = 'yaya';
var age = 16;
console.log(`${name}今年${age}岁了`); //yaya今年16岁了
console.log(`${true?`今年`:`明年`}\n`)
发布了25 篇原创文章 · 获赞 1 · 访问量 603

猜你喜欢

转载自blog.csdn.net/qq_41238274/article/details/105026250