es6 はフレームワークではなく、JavaScript 言語標準です。 es6 は、ECMAScript の 6 番目のバージョンです。ECMA インターナショナル (情報通信標準化団体の国際会員制度) によって ECMA-262 によって標準化されたスクリプト プログラミング言語です。スクリプト言語 JavaScript の中核であり、構文と構文を提供します。言語の基本オブジェクト。
このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。
es6 はフレームワークではなく、JavaScript 言語標準です。
es6 は ECMAScript6 (ECMAScript の 6 番目のバージョン) の略で、2015 年 6 月に正式にリリースされた JavaScript 言語標準です。正式には ECMAScript 2015 (ES2015) と呼ばれます。その目標は、JavaScript 言語を使用して複雑な大規模アプリケーションを作成できるようにし、エンタープライズ レベルの開発言語になることです。
AndECMAScript は、Ecma International によって ECMA-262 を通じて標準化されたスクリプト プログラミング言語です。 この言語は World Wide Web で広く使用されており、JavaScript または JScript と呼ばれることが多いため、JavaScript の標準として理解できますが、実際には、後の 2 つは ECMA-262 標準の実装および拡張です。
JavaScript と ECMAScript の関係
JavaScript と ECMAScript を同じものだと考えることがありますが、実際にはそうではありません。JavaScript には ECMA-262 よりもはるかに多くのコンテンツが含まれています完全な JavaScript は次の 3 つの部分で構成されています:
コア (ECMAScript): 言語の構文と基本オブジェクトを提供します;
ドキュメント オブジェクト モデル (DOM): Web コンテンツを処理するためのメソッドとインターフェイスを提供します;
ブラウザ オブジェクト モデル (BOM): コンテンツと対話するためのメソッドとインターフェイスを提供しますブラウザのインターフェース。
ECMAScript は JavaScript の中核であり、言語の基本的な構文 (var、for、if、配列など) とデータ型 (数値、文字列、ブール値、関数、 ECMAScript は、オブジェクト (obj、[]、{})、null、未定義)、言語 (JS など) がどのようなものであるかを定義する一連の標準です。
ECMAScript は ECMA-262 によって定義されています。ECMAScript は、Web ブラウザに依存しない国際的に認められた標準スクリプト言語仕様です。 ECMA-262 標準では、言語が次のコンポーネントで構成されることが主に規定されています:
構文
変数とデータ型
キーワードと予約語
演算子
制御ステートメント
Object
ECMAScript 6 は基本的に業界標準になりました。その人気は ES5 よりもはるかに速いです。主な理由は、最新のブラウザ、特に Chrome と Firefox が ES6 を非常に早くサポートしているためです。ブラウザはすでにサポートしていますES6 のほとんどの機能。 [推奨学習: JavaScript 上級チュートリアル ]
ES6 を学習する必要があるのはなぜですか? ES6 は何に使用されますか?
ES5 は、フロントエンドが複雑化、巨大化する現状に対応できず、時代遅れとも言えますが、ES6 は ES5 を強化し、アップグレードしたものです。
1. 主流のブラウザは ES6 を完全にサポートしています
2. 業界の新しいフロントエンド フレームワークは ES6 構文を完全に使用しています
3. WeChat アプレット、ユニアプリ、 etc are all based on ES6 syntax
4. 採用から始めて、中小企業、フルスタック、履歴書にもう 1 つのスキル、試用期間も早く始めることができます。
変数
#オブジェクト指向
1. {pojo}(实例变量、实例方法、get、set) 2. function(实例变量、实例方法、prototype、apply、call) 3. class(实例变量、实例方法、prototype、extends、super)
プロトタイプ 関数とクラスのみプロトタイプのみが存在し、その意義はインスタンス変数やインスタンスメソッドを動的に追加し、継承を実装することにあります。
継承 arrow functions 箭头函数,是ES6中新加入的语法,于Java的lambda,scala的函数式语法非常相似 template string 模版字符串,字符串拼接的新语法 destructuring 重构/解构,变量交互的语法 arguments 实参,ES6中加入的直接读取参数的变量 【相关推荐:javascript视频教程、编程视频】 以上がes6はフレームワークですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
应用在继承关系中,子类向父类传参时应用此关键字
继承关系中使用,A extends B,则A是B的父类
在子类中调用父类的方法时应用次关键字
接下来我们手写一套组合继承(原型链继承(继承原型) + 构造继承(继承属性))。这种方式即可避免原型链继承中无法实现多继承,创建子类实例时,无法向父类构造函数传参的弊端,也可避免构造继承中不能继承原型属性/方法的弊端。function Person(name,age){ /* 父类 */
this.name = name || 'father'; //实例变量
this.namesonF = this.nameson;
this.age = age;
this.talk = function(){alert("talk");}; //实例方法
};
function Son(name){ /* 子类 */
this.nameson = name || 'son';
// Person.call(this,'name',18); //继承:构造继承,复制父类的实例属性给子类,不能继承原型属性/方法
Person.apply(this,['name',18]); //继承:构造继承,复制父类的实例属性给子类,不能继承原型属性/方法
}
// Son.prototype = new Person("zhangsan",19); //继承:原型链继承,父类的实例作为子类的原型,拷贝属性两次,不合理
Son.prototype = Person.prototype; //继承:原型链继承,父类的实例作为子类的原型
Person.prototype.publicParam="param1"; //动态添加实例变量
Person.prototype.talk=function(){alert("talk");} //动态添加实例方法
var son = new Son(); //实例化对象,调用构造函数(constructor)
ES6的继承创造了一种新的写法,与Java、Scala等语言非常类似,默认使用组合继承(原型链继承(继承原型) + 构造继承(继承属性))的方式。class Point {
constructor(x, y) {
this.x = x; //实例变量
this.y = y;
}
}
class Son extends Point {
constructor(z, w) {
super(z,w);
this.z = z; //实例变量
this.w = w;
}
}
var son = new Son(1,2);
var single = a => console.log(a);
var single = (a) => (console.log(a));
var single = (a, b) => {console.log(a + b)};
var single = (a, b) => {return a + b};
var templateStr = () => {
var str1 = "adsf\nsdfa";
var template1 = `<ul><li>first</li> <li>second</li></ul>`;
var x = 1;
var y = 2;
var template2 = `${x} + ${y} = ${x + y}`;
var template3 = `${lettest4()}`;
console.log(str1)
console.log(template1)
console.log(template2)
console.log(template3)
}
var destructuring = () => {
var [a,b,...c]=[1,2,3,4,5,6,7,8,9,10];
let [temp="replaceString"] = ["tempString"];
let [age2, [{name: fname},{age: fname2="replaceString"}]] = [20, [{name: 'qc'},{}]];
const [aa,bb,cc,dd,ee,ff]="hello";
let {name="replaceName",age,id}={name:'cursor',age:19,id:'vc6dfuoc91vpdfoi87s'};
let {type:tipType,min:minNumber}={type:'message',min:20};
let {sin,cos,tan,log}=Math;
var fun = function({x,y}={}){return [x,y];}
fun({x:100,y:2});
[a,b]=[b,a]; //交换
var map = [1,2,3]
var map=new Map();
map.set("id","007");
map.set("name","cursor");
for(let [key,value] of map){}
for(let [key] of map){}
for(let [,value] of map){}
var arr = [1,2,3,4]
for(let val of arr){val}
}
function argumentsTest(a,b) {
for(let val of arguments)
{console.log(val)
}
}