關於JS的數據類型ide
簡單類型有五種:Undifined, Null, Boolean, Number, String函數
複雜類型有一種:Objectspa
經過typeof 操做符來獲取數據類型,此操做符返回字符串3d
undifinedcode
boolean對象
stringblog
number字符串
object原型
functionstring
類型Undifined
只有一個值,就是undifined
typeof 未初始化的變量,返回undifined
typeof 未聲明的變量,返回undifined
Null類型
只有一個值,就是null
typeof null 返回object
Boolean類型
只有兩個字面值:true, false
全部類型的值都有與這兩個值等價的值
Number類型
表示浮點數的時候最高精度爲17位小數,可是精度不如整數
var a = 0.1;
var b = 0.2;
則: a + b = 0.30000000000000004
因此,使用浮點數須要注意精度問題。能夠使用以下的方法進行:
function accAdd(arg1, arg2) { var r1, r2, m, c; try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } c = Math.abs(r1 - r2); m = Math.pow(10, Math.max(r1, r2)) if (c > 0) { var cm = Math.pow(10, c); if (r1 > r2) { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")) * cm; } else { arg1 = Number(arg1.toString().replace(".", "")) * cm; arg2 = Number(arg2.toString().replace(".", "")); } } else { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")); } return (arg1 + arg2) / m }
數值的取值範圍:
Number.MIN_VALUE
Number.MAX_VALUE
超出取值範圍的數值爲:Infinity,能夠經過isFinite()函數來判斷
NaN 表示非數值,自己是一個數值對象
最大的特色是不等於任何值,即便是NaN,isNaN()函數能夠判斷是否爲NaN
數值轉換
Number()函數的轉換規則
parseInt()
會判斷是否符合數值模式,會忽略開頭的空格,直到遇到第一個非空字符,解析到第一個非數值爲止
parseInt(參數1,16) 表示使用16進制轉換,參數含義爲進制
parseFloat()
使用方法與上面相似
String類型
Object類型
對象能夠經過new來建立。在JS中Object類型是全部它的實例的基礎。Object中的方法和屬性都存在於更具體的對象中
constructor 構造函數,保存建立當前對象的函數
hasOwnProperty(propertyName) 檢查給定的屬性是否存在於當前對象中
isPrototypeOf(object) 檢查傳入的對象是不是當前對象的原型
propertyIsEnumerable(propertyName) 檢查給定的屬性是否能使用for-in語句來枚舉
toLocaleString() 返回對象的字符串表示
toString() 返回對象的字符串表示
valueOf() 返回對象的字符串、數值或布爾值表示。一般與toString()方法的返回值相同