[ydkjsy]Get Started-1-What Is JavaScript?
6641 ワード
js学習
文章
What's With That Name?
文章
What's With That Name?
Javaプログラマーの注目を集めるため、当時流行していた「Script」という言葉はJavaScriptと名付けられていましたが、実はJava社のOracleはすでにこの商標を持っているので、ここに「JS」または「ECMAScript」または改訂年を付けて「ES 2019」と呼ぶことにしました.
Language Specification
TC 39:JS管理の技術操作委員会、正式な規格管理.
ECMA:TC 39の投票結果を標準組織としてここに提出し、正式化する.
TC 39は5段階(0から4)を経てspecを決定し、TC 39のメンバーの考えやメンバーの擁護だけが0段階に入る.最終4段階で通過すれば、来年の改正に入る資格がある.
JSの公式基準はTC 39、ECMADの1つの基準しかありません.
The Web Rules Everything About(JS)
JSで絶対無視できる環境はWebです.specで定義されているJSは、ブラウザベースのJSエンジンで実行されているJSと同じですが、いくつかの違いがあります.
新しい仕様が以前のプログラムを破損させる可能性がある場合は、エンジンが受け入れない可能性があるため、変更を可能にする必要があります.あるいはspecを決定した後、web上でしか使用できない例外を作成します.
Not All (Web) JS...
JS環境はプログラムのグローバル範囲に特定の機能を持つAPIを追加する.(alert
、つまりJS specではありません.)
Web APIはfetch(..), getCurrentLocation(..), getUserMedia(..)
である.ノードJSは、組み込みモジュールから数百のAPIメソッドにアクセスすることを可能にする.( fs.write(..)
)
不思議なことにconsole.*
度です
It's Not Always JS
ツールはツールです.
Many Faces
JSはマルチサンプルです.
Backwards & Forwards
後方互換性言語が変化しても、既存のコードは有効です.利用可能なユーザーやWebサイトに比べて、プログラムがクラッシュする回数が少ない場合、投票で変更されることもありますが、このような状況は多くありません.JSはこちらです.
forwards互換性(親互換性)は、新機能を加えてもうまく機能します.HTML CSSはこちら
Jumping the Gaps
古い文法だけでなく、最新の文法を使って変換します.代表的なBabel
Filling the Gaps
上記の互換性の問題で最新のAPIメソッドに関連している場合は、APIメソッドが基本的に定義されているように定義を追加します.このパターンを充填と呼ぶ.
たとえば、finallyメソッドが存在しないためにエラーが発生した場合は、次のように追加します.if (!Promise.prototype.finally) {
Promise.prototype.finally = function f(fn){
return this.then(
function t(v){
return Promise.resolve( fn() )
.then(function t(){
return v;
});
},
function c(e){
return Promise.resolve( fn() )
.then(function t(){
throw e;
});
}
);
};
}
これはただの例で、上記のように書くのではなく、正式なpolyfillコレクションES-SCAMを使用するなど、実際にはbabelのようなtranspilerでコードに必要なpolyfillを自動的に検出して追加します.明確な説明が必要な場合は、上記の方法を使用してください.
What's in an Interpretation?
言語配置バイナリ表現のプログラムをコンパイルし、JSはソースコードを配置する.ただし、デプロイタイプは関係ありません.さらに重要なのは、エラーをどのように処理するかです.
スクリプト/interpret言語は、エラーが発生する前に正常に動作します.通常、実行中にエラーが発生します.
逆に、構文エラーなどの無効なコマンドがある場合、解析中(つまり、実行前にエラーが検出されて実行されない)は、パケット言語は実行されません.JSはこれに近い.
JSは.
1.transpiledからbabelまで、webpackでパッケージ化され、JSエンジンを非常に異なる形式で使用します.
2. parsed to AST
3.AST to binary intermediate representation(IR)、そしてJITコンパイラ.
4.JS仮想マシンはプログラムを実行する.
Strictly Speaking
strict modeは、コンパイル時に発生する可能性のあるエラーを予防します.その他のモード制御は、実行時にのみ使用できます.(グローバルオブジェクトではなくthisの場合?)
各ファイルはモードを設定でき、whitespaceやコメント以外は何も書けません."use strict";
各関数は可能ですが、ファイルに設定されていない場合は可能です.
Reference
この問題について([ydkjsy]Get Started-1-What Is JavaScript?), 我々は、より多くの情報をここで見つけました
https://velog.io/@dawnbeen/ydkjsyGet-Started-1-What-Is-JavaScript
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
TC 39:JS管理の技術操作委員会、正式な規格管理.
ECMA:TC 39の投票結果を標準組織としてここに提出し、正式化する.
TC 39は5段階(0から4)を経てspecを決定し、TC 39のメンバーの考えやメンバーの擁護だけが0段階に入る.最終4段階で通過すれば、来年の改正に入る資格がある.
JSの公式基準はTC 39、ECMADの1つの基準しかありません.
The Web Rules Everything About(JS)
JSで絶対無視できる環境はWebです.specで定義されているJSは、ブラウザベースのJSエンジンで実行されているJSと同じですが、いくつかの違いがあります.
新しい仕様が以前のプログラムを破損させる可能性がある場合は、エンジンが受け入れない可能性があるため、変更を可能にする必要があります.あるいはspecを決定した後、web上でしか使用できない例外を作成します.
Not All (Web) JS...
JS環境はプログラムのグローバル範囲に特定の機能を持つAPIを追加する.(
alert
、つまりJS specではありません.)Web APIは
fetch(..), getCurrentLocation(..), getUserMedia(..)
である.ノードJSは、組み込みモジュールから数百のAPIメソッドにアクセスすることを可能にする.( fs.write(..)
)不思議なことに
console.*
度ですIt's Not Always JS
ツールはツールです.
Many Faces
JSはマルチサンプルです.
Backwards & Forwards
後方互換性言語が変化しても、既存のコードは有効です.利用可能なユーザーやWebサイトに比べて、プログラムがクラッシュする回数が少ない場合、投票で変更されることもありますが、このような状況は多くありません.JSはこちらです.
forwards互換性(親互換性)は、新機能を加えてもうまく機能します.HTML CSSはこちら
Jumping the Gaps
古い文法だけでなく、最新の文法を使って変換します.代表的なBabel
Filling the Gaps
上記の互換性の問題で最新のAPIメソッドに関連している場合は、APIメソッドが基本的に定義されているように定義を追加します.このパターンを充填と呼ぶ.
たとえば、finallyメソッドが存在しないためにエラーが発生した場合は、次のように追加します.if (!Promise.prototype.finally) {
Promise.prototype.finally = function f(fn){
return this.then(
function t(v){
return Promise.resolve( fn() )
.then(function t(){
return v;
});
},
function c(e){
return Promise.resolve( fn() )
.then(function t(){
throw e;
});
}
);
};
}
これはただの例で、上記のように書くのではなく、正式なpolyfillコレクションES-SCAMを使用するなど、実際にはbabelのようなtranspilerでコードに必要なpolyfillを自動的に検出して追加します.明確な説明が必要な場合は、上記の方法を使用してください.
What's in an Interpretation?
言語配置バイナリ表現のプログラムをコンパイルし、JSはソースコードを配置する.ただし、デプロイタイプは関係ありません.さらに重要なのは、エラーをどのように処理するかです.
スクリプト/interpret言語は、エラーが発生する前に正常に動作します.通常、実行中にエラーが発生します.
逆に、構文エラーなどの無効なコマンドがある場合、解析中(つまり、実行前にエラーが検出されて実行されない)は、パケット言語は実行されません.JSはこれに近い.
JSは.
1.transpiledからbabelまで、webpackでパッケージ化され、JSエンジンを非常に異なる形式で使用します.
2. parsed to AST
3.AST to binary intermediate representation(IR)、そしてJITコンパイラ.
4.JS仮想マシンはプログラムを実行する.
Strictly Speaking
strict modeは、コンパイル時に発生する可能性のあるエラーを予防します.その他のモード制御は、実行時にのみ使用できます.(グローバルオブジェクトではなくthisの場合?)
各ファイルはモードを設定でき、whitespaceやコメント以外は何も書けません."use strict";
各関数は可能ですが、ファイルに設定されていない場合は可能です.
Reference
この問題について([ydkjsy]Get Started-1-What Is JavaScript?), 我々は、より多くの情報をここで見つけました
https://velog.io/@dawnbeen/ydkjsyGet-Started-1-What-Is-JavaScript
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
後方互換性言語が変化しても、既存のコードは有効です.利用可能なユーザーやWebサイトに比べて、プログラムがクラッシュする回数が少ない場合、投票で変更されることもありますが、このような状況は多くありません.JSはこちらです.
forwards互換性(親互換性)は、新機能を加えてもうまく機能します.HTML CSSはこちら
Jumping the Gaps
古い文法だけでなく、最新の文法を使って変換します.代表的なBabel
Filling the Gaps
上記の互換性の問題で最新のAPIメソッドに関連している場合は、APIメソッドが基本的に定義されているように定義を追加します.このパターンを充填と呼ぶ.
たとえば、finallyメソッドが存在しないためにエラーが発生した場合は、次のように追加します.
if (!Promise.prototype.finally) {
Promise.prototype.finally = function f(fn){
return this.then(
function t(v){
return Promise.resolve( fn() )
.then(function t(){
return v;
});
},
function c(e){
return Promise.resolve( fn() )
.then(function t(){
throw e;
});
}
);
};
}
これはただの例で、上記のように書くのではなく、正式なpolyfillコレクションES-SCAMを使用するなど、実際にはbabelのようなtranspilerでコードに必要なpolyfillを自動的に検出して追加します.明確な説明が必要な場合は、上記の方法を使用してください.What's in an Interpretation?
言語配置バイナリ表現のプログラムをコンパイルし、JSはソースコードを配置する.ただし、デプロイタイプは関係ありません.さらに重要なのは、エラーをどのように処理するかです.
スクリプト/interpret言語は、エラーが発生する前に正常に動作します.通常、実行中にエラーが発生します.
逆に、構文エラーなどの無効なコマンドがある場合、解析中(つまり、実行前にエラーが検出されて実行されない)は、パケット言語は実行されません.JSはこれに近い.
JSは.
1.transpiledからbabelまで、webpackでパッケージ化され、JSエンジンを非常に異なる形式で使用します.
2. parsed to AST
3.AST to binary intermediate representation(IR)、そしてJITコンパイラ.
4.JS仮想マシンはプログラムを実行する.
Strictly Speaking
strict modeは、コンパイル時に発生する可能性のあるエラーを予防します.その他のモード制御は、実行時にのみ使用できます.(グローバルオブジェクトではなくthisの場合?)
各ファイルはモードを設定でき、whitespaceやコメント以外は何も書けません."use strict";
各関数は可能ですが、ファイルに設定されていない場合は可能です.
Reference
この問題について([ydkjsy]Get Started-1-What Is JavaScript?), 我々は、より多くの情報をここで見つけました
https://velog.io/@dawnbeen/ydkjsyGet-Started-1-What-Is-JavaScript
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
strict modeは、コンパイル時に発生する可能性のあるエラーを予防します.その他のモード制御は、実行時にのみ使用できます.(グローバルオブジェクトではなくthisの場合?)
各ファイルはモードを設定でき、whitespaceやコメント以外は何も書けません.
"use strict";
各関数は可能ですが、ファイルに設定されていない場合は可能です.Reference
この問題について([ydkjsy]Get Started-1-What Is JavaScript?), 我々は、より多くの情報をここで見つけました https://velog.io/@dawnbeen/ydkjsyGet-Started-1-What-Is-JavaScriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol