10重要なJavaScriptの質問


JavaScriptは広大な領域を持つプログラミング言語です.今日はJSに関する10の重要な質問について話します.

1 . ' Truthy 'と' falsy '値は?
これは非常に一般的な質問であり、しばしば混乱する.式に値を入れると、boolean ()のような演算子で、' true 'または' false 'のいずれかを取得します.これは'真実'と' falsy '値のベースです.
真の価値の正確な数を定義することは不可能です.むしろ、我々は偽りの価値だけを言います、そして、世界の残りは真実です.
falsy価値:null, undefined, "", '', , 0, NaN, false .
これらのトリッキーな真実の価値に注意してください.

2 .私たちが'未定義'を得ることができる状況は何ですか?
どんな変数も意図的に値を割り当てられないとき、我々は主に未定義です.
  • 関数から値を返したり、何も返さない場合
  • 割り当てられていない変数.{}, [], 'false', '0'
  • オブジェクトにないプロパティにアクセスしようとします.
  • const obj = {
      name: 'John',
      age: 21
    }
    console.log(obj.address) ---> undefined
    
  • 利用できない配列インデックスにアクセスしようとします.
  • const arr = [1, 2, 3, 4];
    console.log(arr[101]);
    
  • 値が設定されていないパラメータ
  • function func(num1, num2){
      console.log(num1, num2)
    }
    func(22); --> // 22, undefined
    

    3 .(== ) VS (== =)
    覚えておくと、ダブルの等しいタイプの不一致を偽造されません.しかし、トリプル等しいです.
    Boolean(1=="1")   // true
    Boolean(1==="1")   // false
    But remember,
    Boolean(NaN==NaN)   // false
    Boolean(NaN===NaN)   // false
    

    4 .これは何を指しますか.
  • それはオブジェクトのどんなメソッドでもあります.
  • 単純な機能では、これはグローバルオブジェクトを参照します.
  • 単独で使用される
  • 、これは世界的なオブジェクトに言及します.
  • const man = {
      name: 'Mosh',
      age: 30
      detail: function() { He is + this.name + and + this.age + years old.}
    }   //this == man
    
    var name = 'Ismail';
    function printName() {
      console.log(this.name);   // the global object
    }
    
    console.log(this.name)   // the global object
    

    5 .矢印関数とは
    矢印関数はES 6の関数定義の新しい形式です.
    function func() {
      return 2*2;
    }    //general function
    const func = ()=> 2*2;   // arrow syntax
      // for single expression we don't need curly braces
    
      // note the case of only one parameter
    const func = x => x*x; // the parenthesis can be omitted. 
    
      // but for multi or no parameter case we need to provide it
    const func = (x, y) => x+y;
    
      // when we have multiple statements
    const func = x => {
      // ....rest of your codes.
      return 'The square is: '+ x*x;
    } 
    

    イベントバブルとは?
    すべてのDOM要素にイベントが発生すると、実際にプロセスに従います.ターゲット要素のみが考慮されていないすべての親もトリガされます.これはイベントバブルと呼ばれます.泡のように広がっているから.例えば、
    <div>
      <p>This is a paragraph with <span>span</span></p>
    </div>
    
    イベントリスナーをすべてのタグに追加し、スパンにイベントをトリガーすると、イベントはこのように実行されます
    pの場合、p -> div

    イベントキャプチャとは?
    我々が望むならば、我々は逆さまに出来事の過程を変えることができます.単に
    ボタンがクリックされると、最初にイベントが一番上から下へ( HTML -> body -> form > ....->>)になります.これはイベントキャプチャの段階であり、イベントは正確な要素に達します.その後、バブリングが始まります.

    8どのように、イベント代表団は動きますか?
    イベントのデリゲートでは、イベントリスナーを厳密な要素(通常、1つ以上の兄弟がここに滞在している)に追加しません.むしろ、通常の親要素に配置し、その末尾を渡します.
    <table onclick="..event">
      <tr>
         <td></td>
         ...
      </tr>
      <tr>
         <td></td>
         ...
      </tr>
    </table>
    
    上記のコードでは、イベントリスナーをすべてのTDSに配置しません.ただし、テーブルにリスナーを配置し、子プロセスにデリゲートを渡します.

    DOMとは
    HTMLページがブラウザ上で読み込まれると、すべてのタグが集合的に* d * odocument * o * bject * m * odelを作成します.これは、JavaScriptからHTMLで動作するように非常に便利です要素の木を形成する.

    イベントループとは
    JSのフードの下では、非同期タスクはWeb API ->イベントキューと呼ばれます.キューからタスクが呼び出されます.しかし、他の関数があるときにスタックに入ることはできません.イベントループは、呼び出しスタックに何もないことを保証します.