JavaScriptについて知っておくべきトップ11の事柄
6234 ワード
1 NULL対未定義
未定義
undefined
変数の値は定義されません.JavaScriptの値が定義されていないグローバル変数typeof undefined
も定義されていない.未定義は定数やキーワードではありません.undefined 1つの値を持つ型です.新しい値を代入すると、未定義の型の値は変更されません.未定義の8つの方法
null
「値なし」を示すためにプログラマが使用する空であるか存在しない値を意味します.NULLはプリミティブ値であり、NULLを任意の変数に割り当てることができます.NULLはオブジェクトではなく、プリミティブ値です.たとえば、プロパティを追加できません.時々、人々は誤ってオブジェクトであると仮定します.2 . = = = = = = =
最も簡単な言い方
==
型をチェックしません.===
両側が同じタイプかどうかチェックします.それで==
PEは同じ型で両方を持ち、比較を行います.===
型と値を比較します.したがって、両側が同じタイプでないならば、答えは常にfalseです.たとえば、2つの文字列を比較する場合、同じ文字セットを持たなければなりません.他のプリミティブ(数値、Boolean)については、同じ値を共有する必要があります.暗黙の保磁力のための規則:使用による比較
==
フードの下での暗黙の型変換を行います.そして、暗黙の保磁力のための規則は以下の通りです===
==
NULL3 . true false
今、私は、どちらが真実か間違っているかについて議論します
'False
' 文字列だから本当です.空文字列のみが偽です' '
は、空の文字列ではないためです.そこには白いスペースがあります.{}
が真.それはオブジェクトです.プロパティのないオブジェクトはオブジェクトです.[]
これも真実です.配列オブジェクト(配列はオブジェクトの子)です.''
また、4 .この
すべての関数の実行時に、JavaScriptは現在の実行コンテキストを参照する関数としてプロパティを設定します.これは常にオブジェクトを参照し、関数の呼び出し方によって異なります.この変化の価値が異なる場合があります.
スコープ
スコープは、実行時のコードの特定の部分の変数、関数、およびオブジェクトのアクセシビリティです.言い換えると、スコープはコードの領域の変数や他のリソースの可視性を決定します.
JavaScript言語では、2種類のスコープがあります.
6 .グローバルスコープ
// the scope is by default global
var name = 'Chayan';
グローバルスコープ内の変数にアクセスでき、他のスコープで変更できます.var name = Chayan;
console.log(name); // logs Chayan
function logName() {
console.log(name); // 'name' is accessible here and everywhere else
}
logName(); // logs Chayan
7 .ローカルスコープ
関数内で定義された変数は、ローカルスコープにあります.そして、それらの関数の呼び出しごとに異なるスコープがあります.これは、同じ名前の変数が異なる関数で使用できることを意味します.これは、これらの変数がそれぞれのそれぞれの関数にバインドされており、それぞれ異なるスコープを持ち、他の関数ではアクセスできません.
ブロックスコープ
ifとswitch条件やwhileループのようなブロック文は、関数とは異なり、新しいスコープを作成しません.ブロック文の中で定義された変数は、すでに存在している範囲に残ります.
if (true) {
// this 'if' conditional block doesn't create a new scope
var name = Chayan; // name is still in the global scope
}
console.log(name); // logs Chanyan
バインド、コールと適用の違い
call ()とapply ()メソッドの間の混乱の主な原因は、これ以外に追加の引数を渡す方法です.そして、なぜbind ()を使うのですか?
だからどのように簡単に3つのアパートを伝える方法を学びましょう.
apply ()
apply(this [, [arg1, arg2,...]])
: この値を指定して関数を呼び出します.さらなる引数は一つの配列として提供されます.Way to remember: “Apply accepts arguments as an Array” or “AA”
call ()
call(this [, arg1, arg2...])
: 指定した関数を呼び出します.更なる議論はコンマ区切りリストとして提供されますWays to remember: “Call’s arguments are separated by commas” or “CC”.
bind ()
bind(this)
: この値が指定された値にバインドされた新しい関数を返します.Ways to remember: bind() is the only method out of the three that returns a new function altogether. It does not call the function.
Javascriptの閉鎖
閉鎖はJavaScriptの重要な概念の一つです.それは広く議論され、まだ概念を混乱させる.閉じるこの動画はお気に入りから削除されています.
クロージャは、外側関数が返された後でさえ、内部関数が常にVarsとその外部関数のパラメーターを持つことを意味します.内部関数は、外部関数の変数とパラメータにアクセスできます.次の例を考えます.
function OuterFunction() {
var outerVariable = 1;
function InnerFunction() {
alert(outerVariable);
}
InnerFunction();
}
この例では、innerfunction ()はoutervariableにアクセスできます.さて、上記の定義に従って、InnerFunction ()は別々に実行されてもOutterVariableにアクセスできます.次の例を考えます.
function OuterFunction() {
var outerVariable = 100;
function InnerFunction() {
alert(outerVariable);
}
return InnerFunction;
}
var innerFunc = OuterFunction();
innerFunc(); // 100
上の例ではreturn InnerFunction;
outerfunction ()をコールした際に、この関数から関数を返します.変数innerFunc
onnerfunction ()だけを参照してください.したがって、innerFunction ()をコールすると、まだアクセスできますouterVariable
を返します.これを閉鎖と呼ぶ.カプセル化
カプセル化は情報隠蔽を意味する.これは、オブジェクトの内部の部品の可能な限り隠れていると最小限のパブリックインターフェイスを公開している.
JavaScriptのカプセル化を作成する最も簡単で最もエレガントな方法はクロージャを使用しています.クローズは、プライベート状態の関数として作成できます.同じプライベート状態を共有する多くのクロージャを作成する場合、オブジェクトを作成します.
Reference
この問題について(JavaScriptについて知っておくべきトップ11の事柄), 我々は、より多くの情報をここで見つけました https://dev.to/chayan/top-11-things-you-should-be-know-about-javascript-1ei2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol