站長資訊網
        最全最豐富的資訊網站

        Javascript的數據類型不包括什么

        Javascript的數據類型不包括Symbol,JavaScript有6種數據類型,分別是Undefined、Null、Boolean、Number、String和Object。

        Javascript的數據類型不包括什么

        本文操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

        Javascript的數據類型不包括什么?

        本文根據(JavaScript高級程序設計(第3版))總結

        JavaScript之六大數據類型(不包括Symbol)

        JavaScript 有6中數據類型——UndefinedNullBooleanNumberStringObject

        ES6中有7種, 多了一種數據類型Symbol, 本文不涉及.

        Undefined表示未定義,Null表示空,Boolean表示布爾值,Number表示數值,String表示字符串。
        通常我們可以用typeof操作符來檢測變量的數據類型。

        注意typeof是操作符!操作符!操作符!

        typeof操作符應用一下規則:

        • "undefined"——這個值是未定義的。
        • "boolean"——這個值是布爾值
        • "string"——這個值是字符串
        • "number"——這個值是數值
        • "object"——這個值是對象或Null
        • "function"——這個值是函數

        例如字符串 str="我是String類型":

        console.log(typeof str) //"string" 注意typeof操作符的返回的結果是字符串

        對于typeof操作符, 還有一點詭異的地方,那就是:
        1. typeof對null返回"object"
        2. typeof對未聲明的變量返回"undefined"
        3. typeof對聲明而未初始化的變量也返回"undefined"

        var s = null console.log(typeof s) //"object" console.log(typeof a) //"undefined", 注意變量a未聲明 var b; console.log(typeof b) //"undefined", 注意變量b聲明但未初始化

        因為typeof的詭異特性,且我們還需進步知道變量的具體信息,我們常用instanceof來確定變量的數據類型。

        Undefined和Null

        UndefinedNull類型只有一個值,那分別是undefinednull
        對于undefined來說,需要記住下面兩點:

        1. 已聲明但未初始化的變量值為undefined(參考上面代碼)
        2. undefinednull相等
        console.log(undefined == null) //true

        對于null來說,需要記住兩點:

        1. typeof null 返回"object",從邏輯上看,null為object的引用(示例見typeof
        2. undefinednull相等

        Boolean

        Boolean類型有兩個值——truefalse
        任何數據可以調用布爾函數Boolean(), 會返回一個布爾值。

        類型 true false
        Boolean true false
        String 非零字符串 “”(空字符串)
        Number 非零數字(包括無窮大) 0和NaN
        Object 任何對象 null
        Undefined 不適用 undefined
        Null 不適用 null

        為了便于記憶, 只需記住false""(空字符串),0NaNnullundefined會使Boolean()函數變為false,其他為true即可。

        代碼范例:

        console.log(Boolean(true)) //trueconsole.log(Boolean(""))   //falseconsole.log(Boolean(1))  //trueconsole.log(Boolean(null)) //false

        Number

        Number類型使用IEEE754格式表示整數和浮點數。對于整數,JavaScript若遇到八進制和十六進制數會自動轉換為十進制數, 若數的范圍超過八進制和十六進制的便是范圍則解析為是十進制數。

        console.log(070) //56console.log(0xA) //10

        八進制在嚴格模式下出錯。

        對于浮點數,Javascript會將小數點后全為0的小數和小數點后沒有數字的小數自動轉換為整數。

        console.log(1.00) //1console.log(10.) //10

        浮點數最高精度為17位小數, 但是在算術運算時需要注意下面的式子:

        console.log(0.1+0.2) //0.30000000000000004

        這也是IEEE754格式表示的通病。

        數值范圍

        Number有兩個屬性表示JavaScript的數值范圍——Number.MAX_VALUENumber.MIN_VALUENumber.MAX_VALUE表示在JavaScript中最大的值,若超出其范圍則會轉為infinity
        Number.MIN_VALUE表示在JavaScript中最小的正值,若超出其范圍則會轉為0
        Number.MAX_VALUE 在大多數瀏覽其中是1.7976931348623157e+308.
        我們可以通過isFinite()方法來確定變量是否在Number.MAX_VALUENumber.MIN_VALUE之間,若在,則返回true, 反之則返回false

        var num = Number.MAX_VALUE+Number.MAX_VALUE;  //超出了Number.MAX_VALUEconsole.log(isFinite(num)); //false

        Number中有個特殊值–NaN, 這個數表示非數值(Not a number). 這個數有兩個特點:

        1. 任何設計NaN的操作都返回NaN.
        2. NaN不等于任何值(包括它本身).

        我們通常可以用isNaN()函數確定某個變量是否是NaN.

        console.log(isNaN(NaN))  // trueconsole.log(isNaN("1"))  //false

        數值轉換 Number(), parseInt()和parseFloat()

        有三個函數可以講將數值轉換為數值類型: Number(), parseInt(), parseFloat().
        Number()函數的轉換規則如下:

        • 對于Boolean類型數值, true轉換為1, false轉換為0
        • null轉換為0
        • undefined轉換為NaN
        • String類型的值按以下規則轉換
          • 若字符串中只包含數字(包括前面帶正負號), 則將其轉換為十進制數. 且忽略前導0.
          • 若字符串包含有效的浮點格式數, 則轉換為浮點數. 忽略前導0.
          • 若字符串包含有效的十六進制格式(如"0xf"), 則將其轉換為相同大小的十進制數.
          • 若為空串, 則轉換為0
          • 若字符串包含上述格式之外的其他子, 則轉換為NaN
        • 待轉換類型是對象時, 調用對象的valueOf()方法返回某一值, 再按前面的方法轉換(第一次轉換)
          • 當第一次轉換結果為NaN時, 調用對象的toString()方法返回字符串值, 再按前面的方法轉換

        parseInt()函數有兩個參數, 第一個參數為待轉換的字符串(若不是字符串則使用ToString()函數轉換為字符串), 第二個參數2到36之間的一個數, 作為基數使用. 基數可以省略, 默認基數為10.

        parseInt() 在解析第一個參數(字符串)時會忽略字符串前面的空格, 知道找到第一個非空格字符. 如果第一個字符不是數字字符或者負號, parseInt()會返回NaN; 也就是說, 用parseInt() 轉換空字符串會返回NaN(Number對空字符串返回0). 如果第一個字符是數字字符, parseInt() 會繼續解析第二個字符, 直到解析完所有后續字符或者遇到了一個非數字字符.
        來源于(JavaScript高級程序設計(第3版))

        console.log(parseInt("   1234blue")) //1234console.log(parseInt("")) //NaNconsole.log(parseInt("AF", 16)) //175

        parseFloat() 相比于前兩個, 他只能解析十進制數. 當解析的字符串可以解析成整數時也會被解析位整數.

        console.log(parseFloat("1234basd")) // 1234console.log(parseFloat("22.5") // 22.5

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 99熟女精品视频一区二区三区 | 91麻精品国产91久久久久| 久久精品国产亚洲5555| 国产欧美日韩精品a在线观看| 国产精品涩涩涩视频网站| 久久噜噜久久久精品66| 无码精品一区二区三区免费视频| 国产小呦泬泬99精品| 99久久免费国产精品热| 少妇精品无码一区二区三区| 欧美在线精品一区二区三区 | 免费视频精品一区二区| 一本大道久久a久久精品综合| 精品精品国产理论在线观看| 欧美久久精品一级c片片| 国产精品嫩草影院AV| 亚洲一区二区三区在线观看精品中文 | 久久e热在这里只有国产中文精品99| 无码人妻精品一区二区三区99不卡 | 日韩精品一区二区午夜成人版| 久久久久久九九99精品| 亚洲国产精品成人网址天堂 | 亚洲av无码精品网站| 欧美成人精品一区二区综合| 精品久久久久国产免费| 国产在线精品一区二区三区不卡 | 久久夜色撩人精品国产| 国产激情精品一区二区三区| 国产精品素人搭讪在线播放| 国产精品免费AV片在线观看| 久久免费的精品国产V∧| 亚洲国产精品无码久久一线| 中文精品人人永久免费| 亚洲精品亚洲人成在线观看下载| 国产成人精品免费午夜app| 少妇伦子伦精品无码STYLES| 亚洲精品国精品久久99热一| 亚洲精品国偷自产在线| 亚洲AV成人精品一区二区三区| 99久久精品免费| 欧美精品国产一区二区|