<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"> // 字面量就是常量,不可變的量 // 變量,用var 聲明變量 // JS底層保存標識符實際上采用的是Unicode編碼,所以理論上所有utf-8的內容都可以用作標識符 // 也就是中文也可以當做標識符 var 年齡=18; 數據類型是字面量的類型 變量可以為任何類型 JS中有6中類型 基本數據類型: String var str="hello world"; //支持轉義字符 Number 整數+浮點數 整數運算可以基本保證正確 浮點數運算會存在誤差,不要對精確要求比較高的運算 var a=123; 數值 var b ="123"; 字符串 console.log(typeof a); //檢查數據類型 console.log(typeof b); 超過最大值,則是Infinity var c = Infinity; //正無 窮 var d =NaN; //NaN是一個特殊數值, Not a Number var e = 123+"233"; console.log(typeof Infinity); //Number console.log(typeof e); //NaN console.log(Number.MAX_VALUE); 1.797336565e+308 最大正數 console.log(Number.MIN_VALUE); 5e-324 最小正數 Boolean Null:空對象 object Remember that null means “no value”, Undefined: 未定義變量,聲明了變量但未賦值 引用數據類型: Object 強制類型轉換
1。轉換成String var a=123; var b =true; 方法1: var c = a.toString(); //調用Number類型變量a的toSting方法,返回它相應的字符串 var d = b.toString(); //調用boolean類型變量b的toSting方法,返回它相應的字符串 null和undefined沒有toString方法 var a = null; var c = a.toString() 會報錯 var a = undefined; var c = a.toString() 會報錯 方法2: 調用String函數,對Number、Boolean,Undefined,NULL都適用 var c = String(a); //c是字符串類型,a是Number 調用String的底層原理: 對於Number,Boolean底層調用的是toString() 對於Undefined和NUll底層直接將其轉成"undefined","null"
方法3:
res = null + ""; "null" 任何值加一個空串即可轉換成字符串,底層是String()函數實現
2.轉換成Number 方法1: 適用Number()函數 字符串 => 數字 1.字符數字字符串直接轉換成數字 "123" => 123 2.非字符數字字符串轉換成NaN "22adf" => NaN 3.空串或者空格串轉換成 0 " " => 0 Boolean => 0, 1 Null => 0 Undefined => NaN; 方法2: parseInt() 把一個字符串中有效數字轉換為整數,從左至右 parseFloat() 把一個字符串中有效數字轉換為浮點數 var a = "123px"; a = parseInt(a); 從頭到尾取整數 對於非String類型的數據使用parseInt()操作時,會先把非String字符串,轉成字符串再操作, 例如: var a = true; a = parseInt(a); 此時a的類型是NaN,此句等價於 parseInt("true")
方法3:、
任何值做 - * / 運算都會轉成Number,利用這個可以做隱式類型轉換
var a = '123'; a = a -0; 此時a就變成數字了,底層原理和Number()函數實現
方法4:
對於非Number值可以使用+將其轉換成Number,- 也可以,不過會改變其值
var a = '123'; a = +a; 此時a就變成數字了,底層原理和Number()函數實現
16進制 0x開頭
8進制 0開頭
2進制 0b開頭 某些瀏覽器不支持
var a = "070"; a = parseInt(a);
某些瀏覽器會把a解析成8進制數,某些瀏覽器會把a解析成10進制數
可以在parseInt()加上第二個參數,指定其進制
a = parseInt(a, 8); 所有瀏覽器都用8進制解析
JavaScript knows
how to convert the string “4” to the
number 4 when it needs to 3、轉換成Boolean 調用Boolean()
數字 => 布爾 0和NaN是false,其他數據都是true var a =123; a = Boolean(a) 字符串 => 布爾 空串是false,其他非空字符串是true (包含空格串) null和undefined => false; object => true
方式二(隱式類型轉換):
- 為任意的數據類型做兩次非運算,即可將其轉換為布爾值
- 例子:
var a = "hello";
a = !!a; //true
</script> </head> <body> </body> </html>