JavaScriptのtitbits


Truthy & Falsy : JavaScriptでは、真の値はブール値コンテキストで遭遇したときにtrueと見なされる値です.
虚偽値は、ブール値コンテキストで遭遇したときにfalseと見なされる値です.
すべての値は、Falsyとして定義されていない場合(すなわち、false、0、- 0、0 n、“”、null、undefined、NaN)を除き、真である.
型強制型対型変換:型強制型“暗黙の”データ型を別の型に変換します.しかし、型変換の場合、それは暗黙的であるか明示的でありえます.
const value1 = '5';
const value2 = 9;
let sum = value1 + value2;

console.log(sum); 
上記の例では、数字値である9がJavaScriptでストリングに強制されました.そして、それは暗黙のうちに行われます.それには手がない.この演算結果は59であり、これは数ではなく文字列である.それで、私たちが予想した結果を得るために欲しかったならば、私たちは「value 1」を最初の数に変えて、それから操作をする必要があります.そうです.sum = Number(value1) + value2;= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =もう一つの興味深いことがここで起こります.
77 === '77'
// false (Number v. String)

false == 0
// true

0 == ""
// true

"" == false
// true 

null == null
// true

undefined == undefined
// true

null == undefined
// true

NaN == null
// false

NaN == undefined
// false

NaN == NaN
// false
//NaN is not equivalent to anything. Cool fact: it’s not even itself!
JavaScriptでTriple Equals == =を使うとき、我々は厳しい平等をテストしています.これは、我々が比較しているタイプと値の両方が同じでなければならないことを意味します.
5 === 5
// true

5 === 5
// true

77 === '77'
// false (Number v. String)

'cat' === 'dog'
// false (Both are Strings, but have different values)

false === 0
// false (Different type and different value)
スコープ:変数のアクセシビリティを決定します.
JavaScriptには、3種類のスコープがあります.
  • グローバルスコープ:グローバル変数(任意の関数の外で)宣言グローバル変数があります.グローバル変数はJavaScriptプログラムのどこからでもアクセスできます.
  • var carName = "Volvo";
    
    // code here can use carName
    
    function myFunction() {
      // code here can also use carName
    }
    
  • function/local scope :局所的に宣言された変数(関数の内部)には関数スコープがあります.ローカル変数は、宣言された関数の中からのみアクセスできます.
  • // code here can NOT use carName
    
    function myFunction() {
      var carName = "Volvo";
      // code here CAN use carName
    }
    
    // code here can NOT use carName
    
  • ブロックスコープ:let or const キーワードはブロックスコープを持つことができます.ブロック{ }内で宣言された変数は、ブロック外からアクセスできません.
  • {
      let x = 2;
    }
    // x can NOT be used here
    
    クロージャ:クロージャは、外側の関数が返された後でさえ、内部関数が常にその外部関数の変数とパラメーターにアクセスできることを意味します.
    function OuterFunction() {
      var outerVariable = 100;
    
      function InnerFunction() {
        alert(outerVariable);
        }
        return InnerFunction;
    }
    
    var innerFunc = OuterFunction();
    innerFunc(); // 100
    
    上の例ではreturn InnerFunction; outerfunction ()をコールした際に、この関数から関数を返します.変数innerfuncはinnerfunction ()だけを参照します.したがって、innerFunction ()をコールした場合、outerFunction ()で宣言されている変数にまだアクセスできます.これを閉鎖と呼ぶ.
    Window :ウィンドウオブジェクトはすべてのブラウザでサポートされます.ブラウザのウィンドウを表します.
    すべてのグローバルJavaScriptオブジェクト、関数、および変数は自動的にウィンドウオブジェクトのメンバーになります.
    グローバル変数はウィンドウオブジェクトのプロパティです.
    グローバル関数はウィンドウオブジェクトのメソッドです.
    ドキュメントオブジェクト( HTML DOMの)であっても、ウィンドウオブジェクトのプロパティです.window.document.getElementById("header");document.getElementById("header");このキーワード:メソッドでthis 所有者オブジェクトを参照します.
    var person = {
      firstName: "John",
      lastName : "Doe",
      id     : 5566,
      fullName : function() {
        return this.firstName + " " + this.lastName;
      }
    };
    person.fullName(); // John Doe
    
    ひとりぼっちthis グローバルオブジェクトを参照します.var x = this // [object Window]機能上this グローバルオブジェクトを参照します.
    function myFunction() {
      return this;
    }
    
    myFuction() // [object Window]
    
    イベントでは、イベントを受け取った要素を参照します.<button onclick="this.style.display='none'">Click to Remove Me!</button> . ヒアthis ボタン要素を参照します.
    settimeout : settimeout ()メソッドは関数を呼び出し、指定した数ミリ秒後に式を評価します.setTimeout(function(){ alert("Hello"); }, 3000); .
    3秒(3000ミリ秒)後に警告ボックスを表示します.
    setInterval : setInterval ()メソッドは関数を呼び出し、指定した間隔(ミリ秒単位)で式を評価します.setInterval(function(){ alert("Hello"); }, 3000); .
    アラート“こんにちは”ごとに3秒(3000ミリ秒).
    呼び出しメソッドcall() メソッドは定義済みのJavaScriptメソッドです.を呼び出すときに使用することができます.(call) 所有者オブジェクトを引数とするメソッドです.
    var person = {
      fullName: function() {
        return this.firstName + " " + this.lastName;
      }
    }
    var person1 = {
      firstName:"John",
      lastName: "Doe"
    }
    
    person.fullName.call(person1);  // Will return "John Doe"
    
    この例では、FullNameメソッドをPerson 1で使用します.