1995 年: JavaScript が誕生し、その初期名は LiveScript でした。
1997: ECMAScript 標準が確立されました。
1999: ES3 が登場し、同時に IE5 が大流行しました。
2000–2005: AJAX とも呼ばれる XMLHttpRequest は、Outlook Web Access (2000)、Oddpost (2002)、Gmail (2004)、および Google Maps (2005) で広く使用されています。
2009: ES5 が登場し、foreach、Object.keys、Object.create、JSON などの標準が (現在ほとんどの人が使用しています)。
2015: ES6/ECMAScript2015 が登場します。 2015 年、ECMAScript 仕様草案の開発を担当する委員会 TC39 は、新しい標準を定義するシステムを 2016 年に 1 回に変更することを決定しました: ES7/ECMAScript2016 が登場しました。
2017: ES8/ECMAScript2017 が登場します。
バインド変数
文字列は複数行をサポートします
... スプレッド演算子
リテラルオブジェクトのメソッドは次のとおりです。省略され、関数キーワードは省略できます
オブジェクトのプロパティは、自動的に計算するように記述することができます
Inherit——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
// 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 中国語 Web サイトの他の関連記事を参照してください。