亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    Javascript的數(shù)據(jù)類型不包括什么

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

    Javascript的數(shù)據(jù)類型不包括什么

    本文操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

    Javascript的數(shù)據(jù)類型不包括什么?

    本文根據(jù)(JavaScript高級程序設(shè)計(第3版))總結(jié)

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

    JavaScript 有6中數(shù)據(jù)類型——Undefined,NullBoolean,NumberStringObject

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

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

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

    typeof操作符應(yīng)用一下規(guī)則:

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

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

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

    對于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來確定變量的數(shù)據(jù)類型。

    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
    任何數(shù)據(jù)可以調(diào)用布爾函數(shù)Boolean(), 會返回一個布爾值。

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

    為了便于記憶, 只需記住false,""(空字符串),0,NaN,nullundefined會使Boolean()函數(shù)變?yōu)?code>false,其他為true即可。

    代碼范例:

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

    Number

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

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

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

    對于浮點數(shù),Javascript會將小數(shù)點后全為0的小數(shù)和小數(shù)點后沒有數(shù)字的小數(shù)自動轉(zhuǎn)換為整數(shù)。

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

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

    console.log(0.1+0.2) //0.30000000000000004

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

    數(shù)值范圍

    Number有兩個屬性表示JavaScript的數(shù)值范圍——Number.MAX_VALUENumber.MIN_VALUE。Number.MAX_VALUE表示在JavaScript中最大的值,若超出其范圍則會轉(zhuǎn)為infinity 。
    Number.MIN_VALUE表示在JavaScript中最小的正值,若超出其范圍則會轉(zhuǎn)為0。
    Number.MAX_VALUE 在大多數(shù)瀏覽其中是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, 這個數(shù)表示非數(shù)值(Not a number). 這個數(shù)有兩個特點:

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

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

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

    數(shù)值轉(zhuǎn)換 Number(), parseInt()和parseFloat()

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

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

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

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

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

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

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

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號