天天看點

Javascript之 基礎文法

JavaScript組成部分

  • ECMAScript
    • 文法
    • 類型
    • 語句
    • 關鍵字
    • 保留字
    • 操作符
    • 對象
  • DOM
    提供通路和操作網頁内容的方法和接口
    • DOM1級
      主要是映射文檔的結構
      • DOM核心
      • DOM HTML
    • DOM2級
      在原來DOM的基礎上又擴充了滑鼠和使用者界面事件、範圍、周遊(疊代DOM文檔的方法)等細分子產品,通過對象接口增加了對CSS的支援
      • DOM視圖(DOM Views):定義了跟蹤不同文檔視圖的接口
      • DOM事件(DOM Events):定義了事件和事件處理的接口
      • DOM樣式(DOM Style):定義了基于CSS為元素應用樣式的接口
      • DOM周遊和範圍(DOM Traversal and Range):定義了周遊和操作文檔樹的接口
    • DOM3級
      進一步擴充了DOM,引入了以統一方式加載和儲存文檔的方法;新增了驗證文檔的方法
  • BOM
    提供與浏覽器互動的方法和接口

資料類型

簡單資料類型:Undefined、Null、Boolean、Number、String

複雜資料類型:Object

  • Array
  • Function
  • Date
  • RegExp
  • typeof操作符

    Undefined

    表示初始化但未聲明的變量,一般不顯式指派,多用于比較

    NULL

    表示一個空指針對象 ,多以typeof會顯示"object",實際上Undefined是派生自NULL,是以

    null == undefined

    的傳回值是

    true

    Boolean

    true

    false

    區分大小寫,

    True

    False

    不是

    Boolean

    值,隻是辨別符

    轉化Boolean值 :

    boolean();

    函數

    資料類型 轉換為true的值 轉換為false的值
    Boolean true false
    String 任何非空字元串 “”(空字元串)
    Number 任何非零數字值(包括無窮大) 0和NaN
    Object 任何對象
    Undefined undefined

    Number

    使用IEEE754格式來表示整數和浮點
    • 整型
      • 十進制

        var num = 10;

      • 八進制

        var num = 070;

      • 十六進制

        var num = 0x5f;

      在進行算術計算時,所有的八進制和十六進制都被轉化為十進制
    • 浮點型
      浮點數最高精度為17位

      0.1 + 0.2 = 0.30000000000000004

    • 數值範圍

      最大值:

      Number.MIN_VALUE

      最小值:

      Number.MAX_VALUE

      超出數值範圍的數會被自動轉換成為特殊的

      Infinity

      值,

      Infinity

      表示正無窮,

      -Infinity

      表示負無窮,

      Infinity

      值無法參加運算,可以用

      isFinite();

      函數判斷數值是否是有窮的。
    • NaN
      表示一個本來要傳回數值的操作數未傳回數值的情況。
      • 特點
        1. 任何涉及NaN的操作都會傳回NaN,除以0的操作也傳回NaN
          實際上隻有NaN / NaN才傳回NaN,整數除以NaN傳回Infinity,負數除以NaN傳回-Infinity
        2. NaN與任何值都不相等,包括他本身
      • 判定:

        isNaN();

        函數
        • isNaN( NaN ) == true

        • isNaN( 10 ) == false

        • isNaN( "10" ) == false

        • isNaN( "blue" ) == true

        • isNaN( true ) == false

    • 數值轉換
      1. Number();
        • 如果是布爾值,true和false将分别轉為1和0.
        • 如果是數字值,隻是簡單地傳入和傳回。
        • 如果是NULL值,傳回0.
        • 如果是undefined,傳回NaN
        • 如果是字元串:
          1. 如果字元串隻包含數字,則将其轉化為十進制數值
          2. 如果字元串中包含有效的浮點格式,則将其轉化為對應的浮點數值
          3. 如果字元串中包含有效的十六進制格式,則轉化為相同大小的十進制形式
          4. 如果字元是空的,則将其轉化為0
          5. 如果字元串包含上述格式之外的字元,則将其轉化為NaN
        • 如果是對象,則調用valueOf()方法,然後依照前面的規則傳回值。如果轉換得是NaN,則調用toString();方法。
      2. parseInt();
        忽略字元串前面的空格,直到找到第一個非空字元,如果第一個字元不是數字字元或者符号,則傳回NaN。否則會直接解析完最後一個數字字元
      3. parsefloat();
        與parseInt();類似

    String

    • 特點
      ECMAScript中的字元串是不可變的,要改變,隻能先銷毀再指派,也就是覆寫。
    • 轉換字元串
      1. toString();

        方法

        undefined

        沒有這個方法
        參數:null,2,8,10,16

        改變進制

      2. String();

        方法

    Object

    ECMAScript中的對象其實就是一組資料和功能的集合。
    • 建立對象
      1. var obj = new Object();

      2. var obj = { ... };

    • Object屬性和方法
      • constructor

        :儲存着用于建立目前對象的函數
      • hasOwnProperty( propertyName )

        :用于檢查給定的屬性在目前的對象執行個體中是否存在
      • isPropertypeOf( object )

        :用于檢查傳入的對象是否是傳入對象的原型
      • propertyIsEnumerable( propertyName )

        :用于檢查給定的屬性是否能夠使用for-in語句來枚舉
      • toLocaleString()

        :傳回對象的字元串表示,該字元串與執行環境的地區對應
      • toString()

        :傳回對象的字元串表示
      • valueOf()

        :傳回對象的字元串數值或布爾值表示,通常與

        toString()

        方法傳回的值相同

    語句

    • for-in語句
      • 疊代語句,循環顯示BOM中對象的所有屬性(無序的)
        如果對象中屬性值為null或者undefined,則會終止循環
    • with語句
      • 将代碼的作用域設定到一個特定的對象中(嚴格模式不支援)

    函數

    ​ 參數:函數可以傳入多個參數,而且不需要定義形參接受,他們會被存入僞數組arguments中。

    ​ 重載:js函數沒有重載,隻能覆寫。

繼續閱讀