JavaScriptの問題を混乱させる

4217 ワード


真実または虚偽の値
JavaScriptでは、Truthyは論理的な目的として使用している間にtrueを意味します.とfalsyは偽の値としてbooleanを意味します.少数の値を除いて、すべての値は信頼できます.falsyの値は0 ", "NULL , false , NaN ,未定義のいくつかの混乱を以下に示します:
var a = 0;
if(a){
 console.log("This is truthy");
}else{
console.log("This is falsy");
}
上記のコードは、A = 0がfalsy値であるので、これを実行します.
var a = "";
if(a){
 console.log("This is truthy");
}else{
console.log("This is falsy");
}
上記のコードは、また、“=”がfalsy値であるので、これはfalsyです.
var a = " ";
if(a){
 console.log("This is truthy");
}else{
console.log("This is falsy");
}
上記のコードでは、宣言でTRUE通知を実行し、文字列の空白を割り当てます.「これは真実の価値だ.

NULLと未定義
未定義のデータ型です.変数は宣言するが、値は割り当てられず、NULLは変数に代入できる値である.この例を以下に示す
var hello; //variable declare but value not assigned
console.log(hello); // print here undefined
未定義の別の方法
var hello = "hi"; //value assigned hi
console.log(hello);
hello = undefined; //undifined assign to hello
console.log(hello); 
hello = null;
console.log(hello); // print here null

ダブルイコール(= =)対トリプル
つの値を比較するために倍の等しいと三重の等しい使用.

ここの違い
Triple Equals (= == )は値を比較するだけでなく、変数データ型も比較します.両方とも同じですが、それは真実です.
var a = 77;
var b = '77';
console.log(a===b); // its false, values are same but datatype
var a =77;
var b=77;
console.log(a===b); //its true
var a = 'hello';
var b = 'hello';
console.log(a===b) //its true,
倍の等しい唯一の比較値はdatatypeでありません.
var a = 77;
var b = '77';
console.log(a==b); // its true, values are same 

スコープ
Scope変数変数範囲を意味します.

グローバルスコープ
変数がグローバルスコープで宣言された場合、どこでもアクセスできます.変数は関数スコープとブロックスコープにアクセスできます.
var name= 'khan'
console.log(name);        //khan

function getName(){
    console.log(name);    //name is accessible here
}

ブロックスコープ
これは、変数がブロックにアクセス可能であることを意味します.場合、スイッチ、for、while、blockはCARE BRIE { BLCOK Scope Area }を開始して終了するコードの領域を意味します
function getName(){
    let name1= 'khan';        //exist in function and block
    if(true){
        let name2= 'momin';     //exist in block scope

    }
    console.log(name1); //it is in the block
    console.log(name2);  //it is out of its block
}

クラーサー
閉鎖定義はDouglas Crockfordによって与えられます:

Closure means that an inner function always has access to the vars and parameters of its outer function, even after the outer function has returned.


function outerFunction(){
 var a = 5;
 function innerFunction(){
  console.log(a);
 }
return innerFunction; //here return the reference of the innerFunction
}

var innerF = outerFunction(); //innerF assigned reference of innerFunction.
innerF(); //call here innerFunction and print 5
上記のコードouterfunction ()はinnerfuncion ()の参照を返します.ただし、inoterfunction ()はouterfunction ()ブロックスコープにあります.しかし、それはouterfunction ()ブロックからアクセスできます.これはクラスパーです.