1.數據類型的概述;
在JavaScript代碼中,可以表示而且操做值的類型就叫作數據類型
數據類型能夠分紅可變類型和不可變類型,可變類型的值是能夠修改的。相反不可變類型的值是不能夠修改的。
數據類型還有原始類型(原始值)與引用類型(內置對象)
而原始樂行還分爲原始類型和特殊類型,引用類型分爲包裝類型與引用類型
原始類型是直接表明JavaScript語言實現的最底層的數據。
原始類型分別有boolean類型、number類型和string類型三種。函數
2.number類型;整數和浮點數,JavaScript不區分整數和浮點數
number類型中的小數,在計算時可能出現偏差
1.並非全部的小數計算都會出現偏差
2.小數計算時要注意結果是否出現偏差
3.經過數字之的換算,將其轉換成整數進行計算,再把結果換算成小數。
number類型中存在一個特殊的值叫NaN。
NaN表示當前的值不是一個數字值、但依舊是number類型,
它與任何值包括自身都不相等性能
3.string類型 - JavaScript的字符串就是由單引號或雙引號包裹
在JavaScript中單引號和雙引號是沒有區別的——建議使用單引號code
string類型 - 文本自己須要單引號或雙引號時
1.若是須要的是雙引號,字符串只能使用單引號
2.若是須要的是單引號,字符串只能使用共贏好對象
var str3 = '"wolongxueyuan"wuwenjia'; console.log(str3); var str4 = "'wolongxueyuan'wuwenjia"; console.log(str4);
4.boolean類型
這個屬性有兩個值;true和false
因爲JavaScript是區分大小寫的,boolean類型的teue和false所有是小寫。
JavaScript也能夠把其餘類型的數據自動轉換爲boolean類型ip
5.typeof運算符字符串
var num = 100; var boo = true; var str = 'wuwenjia'; console.log(typeof num); // number console.log(typeof boo); // boolean console.log(typeof str); // string var result = typeof num; console.log(result); // number console.log(typeof result); // string typeof運算符判斷原始類型 語法結構——typeof變量名稱。 結果——原始類型的名稱(string類型)
6.instanceof運算符string
var str = new String('wuwenjia'); var num = new Number(100); var boo = new Boolean(true); // typeof運算符只能判斷原始類型 console.log(typeof str);// object console.log(typeof num);// object console.log(typeof boo);// object // instanceof運算符用於判斷引用類型(包裝類型) console.log(str instanceof String);// true
typeof運算符和instanceof運算符的區別
typeof運算符console
1.用於判斷原始類型 2.語法結構不一樣——typeof 變量名稱 3.獲得結果不一樣——原始類型的名稱
instanceof運算符變量
1.用於判斷引用類型(包裝類型) 2.語法結構不一樣——變量名稱 instanceof 引用類型名稱 3.獲得結果不一樣——布爾類型的值(true或false)
7.隱式3類型轉換
因爲JavaScript是弱類型/鬆散型的,在任何狀況下均可以強制轉換object
var result3 = +str; console.log(result3);// NaN console.log(typeof result3);// number var result4 = +boo; console.log(result4);// true爲1,false爲0 console.log(typeof result4);// number
轉換爲number類型
string類型轉換爲number類型 若是文本內容是普通的文本(非數字) -> 轉換後的結果爲 NaN 若是文本內容是數字值 -> 轉換後的結果爲對應數字值 boolean類型轉換爲number類型 true轉換爲1 false轉換爲0
var result5 = !!str; console.log(result5);// true console.log(typeof result5);// boolean var result6 = !!num; console.log(result6);// true console.log(typeof result6);// boolean
轉換爲boolean類型
string類型轉換爲boolean類型 空字符串(''或"")轉換後的結果爲false,其他狀況都爲true number類型轉換爲boolean類型 0或NaN轉換後的結果爲false,其他狀況都爲true undefined或null轉換後的結果爲false
8.顯示類型轉換
轉換爲string類型
String()函數 -> String(值) toString()方法 -> 變量名.toString() 對象的方法 -> 將變量看成是一個對象來使用
var result1 = String(num); console.log(typeof result1);// string var result2 = num.toString(); console.log(typeof result2);// string
轉換爲number類型
Number()函數 -> Number(值) parseInt()函數 -> parseInt(值) 轉換爲number類型,轉換爲一個整數 parseFloat()函數 -> parseFloat(值) 轉換爲number類型,轉換爲一個浮點數
var result3 = Number(boo); console.log(typeof result3);// number var result4 = parseInt(str1); console.log(typeof result4);// 100 var result5 = parseFloat(str1);// 100 console.log(result5);// 100 var result6 = parseInt(str2);// 100.1 console.log(result6);// 若是當前值爲小數的話,parseInt()後取整數部分 - 100 var result7 = parseFloat(str2);// 100.1 console.log(result7);// 100.1
轉換爲boolean類型
Boolean()函數 -> Boolean(值)
var result8 = Boolean(str); console.log(result8);// true
隱式類型轉換與顯式類型轉換的區別:
隱式類型轉換 -優勢 - 性能好 - 缺點 - 可讀性差 顯式類型轉換 -優勢 - 可讀性高 -缺點 - 性能差