JavaScript(基礎知識注意点1)

2839 ワード

1.変数スコープ
  • Javascriptの変数のscopeは、方法ブロックによって分けられます.覚えておくと、functionブロックであり、for、while、ifブロックは、スコープの区分基準ではない.
  • 大域変数と局所変数が重名されると、局所変数のscopeは大域変数のscopeを上書きします.局所変数のscopeを離れると、また大域変数のscopeに戻ります.大域変数が局所変数に遭遇した場合、大域変数はどう使いますか?window.global Varable Nameを使います.
  • Javascriptは、実行前にシナリオファイル全体の声明部分を完全に分析し(局所変数を含む)、実変数の作用領域を決定する.つまり変数のアップグレードです.
  • 2.変数の昇格
  • JavaScriptの関数定義には、関数全体のステートメントをスキャンして、説明したすべての変数を関数の上に「昇格させる」という特徴があります.
  • 3.厳格モード
  • strictモードで、JSコードの最初の行に「use strict」と書きます.
  • 厳格モードでは、すべての変数名がプレフィクスvarなしでエラーを報告します.
  • 非厳密モードでは、varプレフィックスなしで変数がグローバル変数として暗黙的に宣言されます.(このように言っていますが、私のデバッグの結果は、プラスバーとノーバーのscopeが同じです.)
  • 4.いくつかのタイプの判断
  • string:typeof varname==「string」
  • number:typeof varname==number(特にNaN)
  • undefined:typeof varname====undefinedまたはvarname==undefined(ダブル引用符に注意)
  • function:typeof varname==「function」またはvarname instanction
  • null:varname==null
  • object:対象の比較的に採用されているメモリアドレス値の比較(伝説はこのようなもので、具体的にはサイの本を読んでからにします.)
  • NaN:isNaN(varname);
  • ここのtypeofは関数です.戻り値はstring文字列です.
    5.IF判定文についての注意点
  • ifにおいて、判断条件が特別指定されていない場合、例えば=========である場合は、すべてBoolean変換を採用する.
  • Boolean変換では、「」、NaN、undefined、null、0、falseの6つの他はすべてtureです.注:「null」「0」「NaN」のような値はtrueです.
  • 6.類型転化の問題
  • pareIntとPareFolatの変換規則:1.文字列の前の空白文字を無視して、最初の空白文字を見つけました.2.最初の文字が-または数字でない場合はNaN 3に戻ります.解析を続けます.非数値モードまでは4.0の先頭は8進数となり、0 xの先頭は16進数となります.しかし、2番目のパラメータを指定することができます.たとえば、パーrseInt('blue')//.NaN parseInt('-23 ABS')/-23 parseInt('0 xf 1')//241 parseInt('101',2)/.5
  • 「+」オペレータ:
  • 1.             ,      
    2.                                            
    3.              valueOf toString
    4.                       
    5.                  ```
    
    
    
    ###7."  "    ###
    -              ,  (0    ):
    
    var s="name"||0;//s="name"
    var s=undefined||0;//s=0;```
    
    8.「=」演算判定
  • 、2つの値のタイプが同じであれば、厳密に等しい演算を実行する
  • .
  • もし2つの値のタイプが異なると
  • 1.     null,   undefined,    
    2.       ,      ,         ,    
    3.      true/false     1/0  
    4.        ,         ,     valueOf toString     
    5.       ```
    
    ###9.       ###
    -         (         ),            ,                   。
    - String  trim()   IE9      ,                 string 。(  :```String.prototype.fun1=function (){ console.log("successful")};```)
    -     null typeof  "object"
    - void              ,    undefined。
    -                ,           。
    - switch             (===)  ,        ,           ,        。
    - with      ,                    。
    
    ###10.ES6   (     )###
    -        map,  :var map=new map();
    -        set,  :var set=new set();
    - for ... of  ( for in             )。
    - rest             ,       arguments  。(    ...rest)。
    -          ,ES6        let, let  var              。
    - ES6          const     ,const let        。