JavaScript 和 Java 同樣,也是有基本數據類型的。但也是有區別的。javascript
undefined、nulljava
Object、Array、Date 等測試
固定的值,讓你從「字面上」理解含義code
數值字面量ip
var age = 18; //數值字面量,18爲字面量
十進制內存
十六進制
var num = 0xA字符串
八進制string
var n = 5e-324;it
浮點數值的最高精確度是17位小數,在進行算術計算時,其精確度遠遠不如整數。console
var result = 0.1+0.2 //結果不是0.3 而是0.300000000000000004 0.1+0.2 == 0.3 //false 0.1+0.3 == 0.4 //true 0.07 * 100 ;7.00000000000000001
想比較的話只能 0.1 * 10 ,而後 parseInt 轉換,而後再相加比較。
永遠不要測試某個特定的浮點數值是否相等。
內存限制,ES沒法保存世界上全部的數值
NaN: not a number. 非數值
isNaN(); //是數字返回false;
console.log(parseInt("abc"));//NaN console.log(parseInt("abc"/10));//NaN var num = prompt("請輸入一個數字") if(isNaN(num)){ console.log("不是一個數字"); }else{ console.log("是一個數字"); }
字符串字面量
var name = "zhangsan"; // "zhangsan"是字面量
字符串用引號引發,單引號和雙引號是同樣的。
獲取字符的長度用length
var name="hukj"; alert(name.length); //4
console.log("\"Ancona\"");
\n 換行
\t 製表符
\b 空格
\r 回車
\f 進紙
\ 斜槓
' 單引號
" 雙引號
var str ="hello"; str = str+"world"; console.log(str);
當執行第二行代碼時,會在內存空間中開闢新的棧,而後經過垃圾回收機制來清理原來的str。這就是所謂的字符串不可變。
var a ='100'; var b =100; //b中的 number:100 會自動轉型爲str console.log(a+b); //100100 console.log(a-b); //0
Boolean 類型有兩個字面量:true 和 false;
var result = Boolean("a");
console.log(result); //true
Boolean 當爲空字符串,0,NaN,null,undefined 時,爲false;
undefined 是 Undefined 的字面量;表示變量未賦值。
var message; console.log(message);// undefined var a; //undefined if(a){ //false alert('有值') }else{ alert('無值') //顯示 }
a未賦值爲undefined,undefined在Boolean中轉換爲false;