轉(zhuǎn)換為字符串類型
- 將其它基本數(shù)據(jù)類型轉(zhuǎn)換為字符串類型的第一種方式
對(duì)于Number類型和Boolean類型來(lái)說(shuō), 直接利用變量調(diào)用
toString()
方法即可
toString()
方法會(huì)將調(diào)用者轉(zhuǎn)換為字符串, 并且會(huì)將轉(zhuǎn)換后的結(jié)果返回給我們并且不會(huì)修改調(diào)用者原有的值串塑。toString()方法
是可以接收參數(shù)的, 參數(shù)代表告訴解析引擎, 需要將Number類型轉(zhuǎn)換為多少進(jìn)制
toString(2)
代表需要將調(diào)用者轉(zhuǎn)換為2進(jìn)制
toString(8)
代表需要將調(diào)用者轉(zhuǎn)換為8進(jìn)制
toString(16)
代表需要將調(diào)用者轉(zhuǎn)換為16進(jìn)制對(duì)于null和undefined來(lái)說(shuō), 不能通過(guò)調(diào)用toString()方法來(lái)轉(zhuǎn)換
// number類型
var num = 123;
var res = num.toString();
console.log(res); // 在谷歌瀏覽器中String類型輸出之后是灰色的
console.log(typeof res); // string
console.log(num); // 在谷歌瀏覽器中Number類型輸出之后是藍(lán)色的
console.log(typeof num);
// Boolean布爾類型
var flag = true;
var res2 = flag.toString();
console.log(res2);
// null和 undefined
var n = null;
var res3 = n.toString(); // 會(huì)報(bào)錯(cuò)
var u = undefined;
var res4 = u.toString(); // 會(huì)報(bào)錯(cuò)
-
將其它基本數(shù)據(jù)類型轉(zhuǎn)換為字符串類型的第二種方式
由于
toString()
方法不能將null, undefined轉(zhuǎn)換為字符串. 所以就有了第二種方式, 將需要轉(zhuǎn)換的數(shù)據(jù)傳遞給String()
函數(shù)
var num = 123;
var res1 = String(num);
console.log(res1); // 123
console.log(typeof res1); // string
var flag = false;
var res2 = String(flag);
console.log(res2); // false
var n = null;
var res3 = String(n);
console.log(res3); // null
var u = undefined;
var res4 = String(u);
console.log(res4); // undefined
-
將其它基本數(shù)據(jù)類型轉(zhuǎn)換為字符串類型的第三種方式
- toString()方法只能將Number和Boolean類型轉(zhuǎn)換為字符串
- String()函數(shù)可以將Number/Boolean/null/undefined轉(zhuǎn)換為字符串
3. 利用算數(shù)運(yùn)算符的加法運(yùn)算來(lái)?yè)Q, Number/Boolean/null/undefined轉(zhuǎn)換為字符串
格式: 需要轉(zhuǎn)換的數(shù)據(jù) + " " ;
var num = 123;
var flag = true;
var n = null;
var u = undefined;
// 任何類型和字符串相加, 都會(huì)先轉(zhuǎn)換為字符串之后再相加
var res1 = num + ""; // 123 + "" --> "123" + "" --> "123"
console.log(res1); // 123
console.log(typeof res1); // string
var res2 = flag + "";
console.log(res2); // true
var res3 = n + "";
console.log(res3); // null
var res4 = u + "";
console.log(res4); // undefined
轉(zhuǎn)換為Number類型
-
轉(zhuǎn)換為Number類型第一種方式:
將需要轉(zhuǎn)換的數(shù)據(jù)傳遞給Number()函數(shù)即可對(duì)于字符串:
如果字符串中都是數(shù)字, 那么就正常轉(zhuǎn)換
如果字符串中不僅僅有數(shù)字, 那么轉(zhuǎn)換為NaN
如果字符串中沒(méi)有內(nèi)容"" " ", 那么就轉(zhuǎn)換為0對(duì)于布爾類型: true轉(zhuǎn)換為1, false轉(zhuǎn)換為0
對(duì)于null: 轉(zhuǎn)換為0
對(duì)于undefined: 轉(zhuǎn)換為NaN
總結(jié):
空字符串(""/" ") /false /null --> 0
不僅僅包含數(shù)字的字符串 和 undefined --> 轉(zhuǎn)換為NaN
其它的均可正常轉(zhuǎn)換 轉(zhuǎn)換為Number類型第二種方式:
利用算數(shù)運(yùn)算符來(lái)轉(zhuǎn)換, 在需要轉(zhuǎn)換的類型前面加上+加號(hào)或者-減號(hào)即可
注意點(diǎn):
+加號(hào)不會(huì)改變數(shù)據(jù)的正負(fù)性
-減號(hào)會(huì)改變數(shù)據(jù)的正負(fù)性
var str1 = "123";
var res1 = +str1;
console.log(res1); // 123
console.log(typeof res1); // number
var res2 = -str1;
console.log(res2); // -123
console.log(typeof res2); // number
var str2 = "3.14";
var res3 = +str2;
console.log(res3); // 3.14
var flag1 = true;
var res4 = +flag1;
console.log(res4); // 1
var flag2 = false;
var res5 = +flag2;
console.log(res5); // 0
var n = null;
var res6 = +n;
console.log(res6); // 0
var u = undefined;
var res7 = +u;
console.log(res7); // NaN
-
轉(zhuǎn)換為Number類型第三種方式:
通過(guò)Number函數(shù)或者通過(guò)+-運(yùn)算符轉(zhuǎn)換, 都不能轉(zhuǎn)換復(fù)雜的字符串
例如: "12px"所以就有第三種轉(zhuǎn)換的方式, 通過(guò)
parseInt()/parseFloat()
函數(shù)
parseInt: 只能提取整數(shù)
parseFloat: 可以提取小數(shù)
注意點(diǎn):
-
parseInt/parseFloat
, 會(huì)從左至右的提取, 一旦被中斷后續(xù)的就提取不到了 - 對(duì)于
parseFloat
來(lái)說(shuō), 只能提取一個(gè)點(diǎn), 第二個(gè)點(diǎn)會(huì)被中斷
var str1 = "3.14px";
var res1 = parseInt(str1);
console.log(res1); // 3
console.log(typeof res1); // number
var res2 = parseFloat(str1);
console.log(res2); // 3.14
console.log(typeof res2); // number
var str = "12px666px";
var res1 = parseInt(str);
console.log(res1); // 12
var str = "3.14.15px";
var res1 = parseFloat(str);
console.log(res1); // 3.14
轉(zhuǎn)換為Boolean類型
-
將需要轉(zhuǎn)換的數(shù)據(jù)傳遞給Boolean()函數(shù)即可
對(duì)于字符串而言:
只要不是空字符串(沒(méi)有任何內(nèi)容), 都會(huì)轉(zhuǎn)換為 false
只要字符串中有內(nèi)容(包含空格/Table), 都會(huì)轉(zhuǎn)換為 true對(duì)于Number類型而言: 只要不是 0 都會(huì)轉(zhuǎn)換為 true, 只有0會(huì)轉(zhuǎn)換為 false
對(duì)于 null 和 undefined 而言, 都會(huì)轉(zhuǎn)換為 false
對(duì)于 NaN 也會(huì)轉(zhuǎn)換為false
總結(jié): "" / 0 / null / undefined / NaN --> false