1995년: JavaScript가 탄생했고 초기 이름은 LiveScript였습니다.
1997: ECMAScript 표준이 제정되었습니다.
1999년: ES3가 등장하면서 동시에 IE5가 대세를 이루었습니다.
2000–2005: AJAX라고도 알려진 XMLHttpRequest는 Outlook Web Access(2000), Oddpost(2002), Gmail(2004) 및 Google Maps(2005)에서 널리 사용됩니다.
2009년: foreach, Object.keys, Object.create 및 JSON과 같은 표준(현재 우리 대부분이 사용하고 있는) ES5가 출시되었습니다.
2015: ES6/ECMAScript2015가 나타납니다. 2015년에 ECMAScript 사양 초안 개발을 담당하는 위원회인 TC39는 새로운 표준을 정의하는 시스템을 2016년에 한 번으로 변경하기로 결정했습니다. ES7/ECMAScript2016이 등장했습니다.
2017: ES8/ECMAScript2017이 나타납니다.
바인드 변수
문자열은 여러 줄을 지원합니다
... 스프레드 연산자
향상된 객체 리터럴
속성 ——port——
var [foo, [[bar], baz]] = [1, [[2], 3]];console.log(foo);// 1console.log(bar);// 2console.log(baz);// 3
var [,,third] = ["foo", "bar", "baz"];console.log(third);// "baz"
//箭头函数 =>let jian = () => {console.log("Hello")}jian();//没有参数()=>{console.log("你好")};//有参数(name)=>{console.log(name);};//可以省略()let d = name=>{console.log(name);}d('jiang');//两个参数(name,age)=>{console.log(name,age);};//省略后的let c (a,b)=>a+b;(a,b)=>{console.log(a+b);console.log(c);
함수 매개변수
let m = 1;let l = 1;console.log(m==l);//打印出truelet mm = Symbol();let ll = Symbol();console.log(mm==ll);//打印出flase참고로 new 연산자는 Symbol 앞에 사용할 수 없습니다.
// Setsvar s = new Set();s.add("hello").add("goodbye").add("hello");s.size === 2;s.has("hello") === true;// Weak Setsvar ws = new WeakSet();ws.add({ data: 42 });
var ws = new WeakSet();var obj = {};var foo = {};ws.add(window);ws.add(obj);ws.has(window); // truews.has(foo); // false, foo 没有添加成功ws.delete(window); // 从结合中删除 window 对象ws.has(window); // false, window 对象已经被删除
// Mapsvar m = new Map();m.set("hello", 42);m.set(s, 34);m.get(s) == 34;// Weak Mapsvar wm = new WeakMap();wm.set(s, { extra: 42 });wm.size === undefined
var wm = new WeakMap(); var obj = new Object(); wm.set(obj,'对象1'); obj=null; wm.get(obj); //undefined wm.has(obj); //false
关键点:ES2015=ES6
最常用的ES6特性
ES5只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。let则实际上为JavaScript新增了块级作用域。用它所声明的变量,只在let命令所在的代码块内有效。
块级作用域与函数声明问题:
函数能不能在块级作用域之中声明,是一个相当令人混淆的问题。
ES6引入了块级作用域,明确允许在块级作用域之中声明函数。
注意:ES6规定,块级作用域之中,函数声明语句的行为类似于let,在块级作用域之外不可引用。
当我们使用箭头函数时,函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this,它的this是继承外面的,因此内部的this就是外层代码块的this
5.ES6的继承机制,实质是先创造父类的实例对象this(所以必须先调用super方法),然后再用子类的构造函数修改this。
6.template string
我们要插入大段的html内容到文档中时,传统的写法非常麻烦,所以之前我们通常会引用一些模板工具库
위 내용은 es6의 상식 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!