フロントエンド面接のES 5とES 6の違い
3422 ワード
まず、ESは何ですか?全体をECMAScriptと呼び、JavaScript言語の核心であり、jsの構成部分を規定しています.文法、タイプ、語句、キーワード、保留字、オペレータ、オブジェクト.下のまっすぐ行くのは違います.
1.システムライブラリの参照
ES 5の引用は、requireを使ってReactパッケージを導入し、対象として、真の参照を行う必要があります.
ES 5では、クラスを導出して他のモジュールに使用する場合、通常はmodule.exportによって実現され、参照する場合は依然としてrequire方法によって取得される.
3.コンポーネントを定義する
ES 5では、コンポーネントクラスの定義は、React.create Classにより実現される.
注意:ES 5のReact.createClassの後ろには小さい括弧が必要で、最後にはセミコロンが必要です.
注意:ここで終わると、小さい括弧は現れません.また、セミコロンを追加する必要はありません.
上の例からも、コンポーネントの定義方法は名前ではなく、名前で表記します.
ES 5では、初期化stateはget Initial Stateを使用します. ES 6のletコマンドは変数、用法はvarと同じですが、letはJavaScriptのためにブロックレベルのスコープを追加しました.ES 5にはブロックレベルのスコープがありません.varは変数アップの概念がありますが、letで使用する変数は必ず声明します. ES 6における変数の構造的割り当ては、オブジェクトの解と配列の解と、例えば、var[a,b,c]=[0,1,2]; ES 6の関数定義は、キーワードfunctionを使用するのではなく、矢印関数=>を利用して定義される. ES 6には、Fnction A(x,y=9){}のようなデフォルトの関数パラメータが設定されてもよい. ES 6にセットとMapセットが追加されました. ES 6に基本データタイプSymbolが追加されました. …
今はまずこんなに多くまとめて、他の子供も補充できます.みんなで勉強して、進歩します.
1.システムライブラリの参照
ES 5の引用は、requireを使ってReactパッケージを導入し、対象として、真の参照を行う必要があります.
//ES5
var React = require("react");
var {
Component,
PropTypes
} = React; // React
var ReactNative = require("react-native");
var {
Image,
Text,
} = ReactNative; // React Native
ES 6では、import法を使用して直接的にシステムライブラリ参照を実現できます.ライブラリオブジェクトを追加作成する必要はありません.//ES6
import React, {
Component,
PropTypes,
} from 'react';
import {
Image,
Text
} from 'react-native'
2.単一クラスのエクスポートと参照ES 5では、クラスを導出して他のモジュールに使用する場合、通常はmodule.exportによって実現され、参照する場合は依然としてrequire方法によって取得される.
//ES5
var MyComponent = React.createClass({
...
});
module.exports = MyComponent;
//ES5
var MyComponent = require('./MyComponent');
ES 6では、export defaultを使用して同様の機能を実現しますが、import方法を使用して導入を実現します.//ES6 ( Component )
export default class MyComponent extends Component{
...
}
//ES6
import MyComponent from './MyComponent';
注意:ES 5とES 6の導入導出方法はペアになって現れます.3.コンポーネントを定義する
ES 5では、コンポーネントクラスの定義は、React.create Classにより実現される.
注意:ES 5のReact.createClassの後ろには小さい括弧が必要で、最後にはセミコロンが必要です.
//ES5
var Photo = React.createClass({
render: function() {
return (
);
},
});
ES 6では、モジュール類にReact.Component類を継承させてもいいです.注意:ここで終わると、小さい括弧は現れません.また、セミコロンを追加する必要はありません.
//ES6
class Photo extends React.Component {
render() {
return (
);
}
}
4.コンポーネントの定義方法上の例からも、コンポーネントの定義方法は名前ではなく、名前で表記します.
//ES5
var Photo = React.createClass({
componentWillMount: function(){
},
render: function() {
return (
);
},
});
//ES6
class Photo extends React.Component {
componentWillMount() {
}
render() {
return (
);
}
}
5.Stateを初期化するES 5では、初期化stateはget Initial Stateを使用します.
//ES5
var Video = React.createClass({
getInitialState: function() {
return {
loopsRemaining: this.props.maxLoops,
};
},
})
ES 6には2つの書き方の最初のものがあり、直接state関数を構築します.class Video extends React.Component {
state = {
loopsRemaining: this.props.maxLoops,
}
}
第二に、OCに相当する方法で書き換え、constructorを書き換える方法です.class Video extends React.Component {
constructor(props){
super(props);
this.state = {
loopsRemaining: this.props.maxLoops,
};
}
}
6.ES 6の新しい特性今はまずこんなに多くまとめて、他の子供も補充できます.みんなで勉強して、進歩します.