1. 程式人生 > >JS 原始數據

JS 原始數據

fin 都是 開頭 clas dex 布爾運算 () 十六 而是

原始數據

1 基本類型(基本數值、基本數據類型)是一種既非對象也無方法的數據。在 JavaScript 中,共有6種基本類型:string,number,boolean,null,undefined,symbol (ECMAScript 2015新增)。所有基本類型的值都是不可改變的。但需要註意的是,基本類型本身和一個賦值為基本類型的變量的區別。變量會被賦予一個新值,而原值不能像數組、對象以及函數那樣被改變。
var a=‘hello‘;
console.log(a);//hello
a.toUpperCase();
console.log(a);//hello
2 JavaScript 內部,所有數字都是以64位浮點數形式儲存,即使整數也是如此。所以,1與1.0是相同的,是同一個數。
3 根據國際標準 IEEE 754,JavaScript 浮點數的64個二進制位,從最左邊開始,是這樣組成的。第1位:符號位,0表示正數,1表示負數;第2位到第12位(共11位):指數部分;第13位到第64位(共52位):小數部分(即有效數字);符號位決定了一個數的正負,指數部分決定了數值的大小,小數部分決定了數值的精度。
4 NaN
    4.1 NaN是 JavaScript 的特殊值,表示“非數字”(Not a Number),主要出現在將字符串解析成數字出錯的場合。 ==>5 - ‘x‘ // NaN
    4.2 NaN不是獨立的數據類型,而是一個特殊數值,它的數據類型依然屬於Number  typeof NaN // ‘number‘
    4.3 NaN不等於任何值,包括它本身。NaN === NaN // false
    4.4 數組的indexOf方法內部使用的是嚴格相等運算符,所以該方法對NaN不成立。 [NaN].indexOf(NaN) // -1
    4.5 NaN在布爾運算時被當作false。  Boolean(NaN) // false
    4.6 NaN與任何數(包括它自己)的運算,得到的都是NaN。
5 Infinity
    5.1 Infinity表示“無窮”,用來表示兩種場景。一種是一個正的數值太大,或一個負的數值太小,無法表示;另一種是非0數值除以0,得到Infinity。
    5.2 Infinity有正負之分,Infinity表示正的無窮,-Infinity表示負的無窮。  Infinity === -Infinity // false
    5.3 Infinity大於一切數值(除了NaN),-Infinity小於一切數值(除了NaN)。 Infinity > 1000 // true     -Infinity < -1000 // true
    5.4 Infinity與NaN比較,總是返回false。
    5.5 Infinity的四則運算,符合無窮的數學計算規則。 
        1 * Infinity // Infinity
        1 - Infinity // -Infinity
        Infinity / 1 // Infinity
        1 / Infinity // 0
    5.6 0乘以Infinity,返回NaN;0除以Infinity,返回0;Infinity除以0,返回Infinity。
    5.7 Infinity加上或乘以Infinity,返回的還是Infinity。
    5.8 Infinity減去或除以Infinity,得到NaN。
    5.9 Infinity與null計算時,null會轉成0,等同於與0的計算。
        null * Infinity // NaN
        null / Infinity // 0
        Infinity / null // Infinity
    5.10 Infinity與undefined計算,返回的都是NaN。
6 parseInt()
    6.1 parseInt方法用於將字符串轉為整數。  parseInt(‘12334‘) //1234
    6.2 如果字符串頭部有空格,空格會被自動去除。  parseInt(‘     12334   ‘) //1234
    6.3 如果parseInt的參數不是字符串,則會先轉為字符串再轉換。 
    6.4 字符串轉為整數的時候,是一個個字符依次轉換,如果遇到不能轉為數字的字符,就不再進行下去,返回已經轉好的部分。
        parseInt(‘12abc‘) //12
        parseInt(‘12.3456‘) //12
        parseInt(‘12e2‘) //12
        parseInt(‘12em‘)//12
    6.5 如果字符串的第一個字符不能轉化為數字(後面跟著數字的正負號除外),返回NaN。parseInt(‘e12em‘) //NaN
    6.6 如果字符串以0x或0X開頭,parseInt會將其按照十六進制數解析。  parseInt(‘0x11‘) //17
    6.7 如果字符串以0開頭,將其按照10進制解析。 parseInt(‘011‘) //11
    6.8 對於那些會自動轉為科學計數法的數字,parseInt會將科學計數法的表示方法視為字符串,因此導致一些奇怪的結果。
    6.9 parseInt方法還可以接受第二個參數(2到36之間),表示被解析的值的進制,返回該值對應的十進制數。默認情況下,parseInt的第二個參數為10,即默認是十進制轉十進制。如果第二個參數不是數值,會被自動轉為一個整數。這個整數只有在2到36之間,才能得到有意義的結果,超出這個範圍,則返回NaN。如果第二個參數是0、undefined和null,則直接忽略。 parseInt(‘011‘,2)// 3  parseInt(‘011‘,10) //11  
7 parseFloat()
    7.1 parseFloat方法用於將一個字符串轉為浮點數。  parseFloat(‘3.14‘) //3.14
    7.2 如果字符串符合科學計數法,則會進行相應的轉換。 parseFloat(‘3.14e+2‘) //314
    7.3 如果字符串包含不能轉為浮點數的字符,則不再進行往後轉換,返回已經轉好的部分。 parseFloat(‘3.14e+2dsadsad‘) //314
    7.4 parseFloat方法會自動過濾字符串前導的空格。 parseFloat(‘\t\v\r3.14\n ‘)  //3.14
    7.5 如果參數不是字符串,或者字符串的第一個字符不能轉化為浮點數,則返回NaN parseFloat(‘‘) //NaN
        parseFloat(true)  // NaN
        Number(true) // 1

        parseFloat(null) // NaN
        Number(null) // 0

        parseFloat(‘‘) // NaN
        Number(‘‘) // 0

        parseFloat(‘3.14#‘) // 3.14
        Number(‘3.14#‘) // NaN
8 isNaN()
    8.1 isNaN方法可以用來判斷一個值是否為NaN。 isNaN(NaN) //true isNaN(1) //false
    8.2 isNaN只對數值有效,如果傳入其他值,會被先轉成數值。比如,傳入字符串的時候,字符串會被先轉成NaN,所以最後返回true,這一點要特別引起註意。也就是說,isNaN為true的值,有可能不是NaN,而是一個字符串。對於對象和數組,isNaN也返回true.  isNaN(‘q‘)//true  isNaN({}) //true  isNaN([‘123‘])//false  isNaN([‘abc‘]) //true isNaN([])//false
    8.3 判斷NaN更可靠的方法是,利用NaN為唯一不等於自身的值的這個特點,進行判斷。
        function myIsNaN(value) {
            return value !== value;
        }
9 isFinite()
    9.1 isFinite方法返回一個布爾值,表示某個值是否為正常的數值。 除了Infinity、-Infinity、NaN和undefined這幾個值會返回false,isFinite對於其他的數值都會返回true。 
        isFinite(Infinity) // false
        isFinite(-Infinity) // false
        isFinite(NaN) // false
        isFinite(undefined) // false
        isFinite(null) // true
        isFinite(1) // true

JS 原始數據