變量類型和計算

題目(答案見每題下方空白處)

  1.JS中使用typeof能夠獲得哪些類型正則表達式

  number、string、boolean、undefined、object、function數組

  2.什麼時候使用===,什麼時候使用==函數

  通常除了obj.a == null裏建議用==(不然須要寫obj.a === null || obj.a === undefined,節約代碼量,jQuery原碼這麼寫的),其餘建議用===spa

  3.JS中的內置函數有哪些prototype

  這裏指的是ECMAScript中的函數,包括Object、Array、Function、Boolean、Number、String、Date、RegExp、Error對象

  4.JS變量按照存儲方式分爲哪些類型,描述其特色ip

  基本類型和引用類型內存

  基本類型中的每一個值都放在內存中(棧內存),複製時複製的爲值開發

  引用類型中的每一個值放在堆內存中,變量中保存的只是這個值的一個地址,複製的時候複製的爲地址字符串

  5.如何理解JSON

  JSON也是JS中的一個內置對象,只不過其書寫上的格式比較嚴格,有兩個API:stringify(對象->字符串)和parse(字符串->對象)

  但另外一方面來講,JSON也是一個數據格式

 

知識點

變量類型

基本類型和引用類型

  基本類型有stringnumberbooleanundefinednull,保存在棧內存

  用變量來給另外一個變量賦值時,變量獲得的是,所以兩個變量值發生變化時,另外一個變量的值不變

  而引用類型有arrayobjectfunction,保存在堆內存

  用變量給另外一個變量賦值時,實際上獲得的是這個引用類型的一個地址,所以當其中一個變量值發生變化時,另外一個變量的值也變化

 

  能夠理解成基本類型的值(數據量,直接放在內存中比較好,而引用類型數據量大,放在內存中不利於內存的使用,節約內存空間

typeof運算符

  對象、數組正則表達式null返回object,函數返回function,數字返回number,字符串返回string,布爾值返回boolean,undefined返回undefined

  因此對於基本類型,typeof區分比較好,可是對於引用類型,用instanceof比較好(是否爲某個的實例)

萬能方法

  instanceof實際上判斷的是數據對象是否爲某個數據類型構造函數實例,若是用'123' instanceof String,返回的也是false

  這裏能夠用Object原型上的toString方法來判斷,也就是Object.prototype.toString.call(),輸出的是一個數組,內容爲Object 數據類型,全部的數據類型在判斷的時候都沒有問題

擴展——symbol類型

  ES6中新增了Symbol類型,用typeof返回symbol

  這裏的symbol類型每次都生成一個不同的獨立的值,也就是用===符號判斷兩個Symbol類型是永遠不可能相等

  能夠在構造Symbol實例的時候向其中傳入一個字符串,查看該值的時候會以symbol(字符串)的形式返回,有利於咱們區分不一樣的Symbol類型

  能夠用在對象中,以防止對象的鍵值對被修改,但實際開發中還幾乎沒有用symbol類型的

 

變量計算

強制類型轉換

  發生在如下幾種狀況中

  1. 字符串拼接(字符串+數字)
  2. ==運算符
  3. if語句
  4. 邏輯運算

   其中會被強制轉換成false的有:0NaN"undefinednullfalse自己

 

JSON

  JSON也是JS中的一個內置對象(注意和內置函數區別,Math也是一個內置對象,內置函數是能夠用new關鍵詞構造實例的),只不過其書寫上的格式比較嚴格

  JSON有兩個API:stringify(對象->字符串)和parse(字符串->對象)

  但另外一方面來講,JSON也是一個數據格式

相關文章
相關標籤/搜索