1. 程式人生 > 其它 >js 變數、資料型別、作用域整理

js 變數、資料型別、作用域整理

js 變數、資料型別、作用域整理

一、Js 知識體系

JS分為三部分:

  1.ECMAScript標準 js基本語法

  2.DOM 文件物件模型    DOM提供了方法操作DOM樹上的節點

  3.BOM 瀏覽器物件模型   通過BOM可以獲得螢幕解析度 控制瀏覽器跳轉彈出框

更多參考:

JavaScript 與 ECMAScript 的關係

BOM中的頂級物件就是window,DOM中的頂級物件是document:JavaScript Window物件 整理

document是window的一個子物件。

    window.onload(){}

    setInterval()  clearInterval()

    setTimeout() clearTimeout()

    Location物件   

DOM物件:HTML DOM / JavaScript DOM 簡介 和整理

二、Js 資料型別

1.基本資料型別

number / string / boolean / undefined / null    (可使用typeof方法來判斷基礎物件型別)

2.引用資料型別

 function / object

  其中需要注意的是:

    引用資料型別會開闢出堆記憶體,它們指向的是記憶體地址。

    字串之間用 '+' 會拼接字串,如果其他型別資料和字串拼接,會被轉換為字串,這其中涉及到變數的隱式轉換

型別轉換:

  數字型別轉換:

    parseInt() / parseFloat() / Number()

    總結:想要轉整數用parseInt(),想要轉小數用parseFloat(),想要轉數字:Number();要比上面的兩種方式嚴格。

  其他型別轉換:

    .toString() / String() / Boolean()

  補充:

    NaN 不是一個數字,或者不是數字與數字的計算就會得到 NaN (isNaN() 判斷一個值是不是 NaN)

    ! 表示非, !false ==true 的結果為true

操作符:

  算數運算子:+ - * / %

  算數運算表示式:由算數運算子連線起來的表示式

  一元運算子:++ --

  二元操作符: && ||

  三元操作符:條件?結果1 : 結果2

  複合運算子: += -= *= /= %=

  複合運算表示式:由複合運算子連線起來的表示式

流程控制:

  if(){  } else if(){  }else{  }

  switch(){ case :;default: ; }

  while(){  } / do{  }while() / for( ; ; ){  } /for in

  其中:

    break用來取消後續迴圈,continue 用來取消本次迴圈。

    switch中的條件判斷使用的是嚴格模式的全等於。

三、Js 內建物件

 例項方法---->必須要通過new的方式建立的物件(例項物件)來呼叫的方法

  靜態方法---->直接通過大寫的建構函式的名字呼叫的方法(直接通過大寫的物件名字呼叫的)

  Array建立方式有兩種:可以直接通過字面量建立 / 通過建構函式進行建立 : var a =[] / var a = new Array()

   JavaScript陣列(三)陣列物件使用整理

  Math物件 :

    Javascript 數學函式 Math(二)

  Date物件

    JavaScript Date物件和函式 (一)

  String物件

    字串可以看作是由很多字元組成的陣列,字串有不可變的特性,字串的值之所以看起來是改變的,那是因為指向改變了,並不是真的值改變了。

    Javascript 字串(三) String物件&方法

JSON 物件

JavaScript JSON物件(一)

四、Js 作用域

作用域:

  分為全域性作用域和區域性作用域,根據所在的作用域不同,變數又分為全域性變數和區域性變數。

    其中還有塊級作用域,被'{ }'包裹就可以看成一個塊,其實的變數定義,使用var定義可以被外部使用,使用const、let不可以被外部使用。

    區域性變數在函式作用域銷燬時,就會被釋放,而全域性變數一旦被建立,就不會被釋放,除非頁面關閉(但是隱式全域性變數可以被銷燬,沒有使用var宣告的全域性變數)。

  在所有作用域建立的時候,js引擎會有一個處理,預解釋,它所做的事,就是提前把所有的變數聲明瞭,所有的函式宣告並定義了(所以你可以在定義函式之前來呼叫這個函式)。

    預解釋中的變數提升,只會提升到當前作用域的最前面,而不是其他作用域。

    預解析會分段(多對的script標籤中函式重名,預解析的時候不會衝突)。

全域性作用域,window:JavaScript Window物件 整理