- 在變量中加入字符串進(jìn)行拼接,可以被同化為字符串
舉例1:
var a = "1";
var b = 2;
console.log(a + b);
控制臺(tái)輸出:
12
舉例2:
var a = 1;
var b = 2;
console.log("a" + b); //"a"就不是變量了!所以就是"a"+2 輸出a2
控制臺(tái)輸出:
a2
-
- 、* 、/ 、%這幾個(gè)符號(hào)會(huì)自動(dòng)進(jìn)行隱式轉(zhuǎn)換
例如:
var a = "4" + 3 - 6;
console.log(a);
輸出結(jié)果:
37(43-6)
- null 和 undefined
任何數(shù)據(jù)類型和undefined運(yùn)算都是NaN(not a number);
任何值和null運(yùn)算,null可看做0運(yùn)算。 -
prompt()就是專門(mén)用來(lái)彈出能夠讓用戶輸入的對(duì)話框。重要的是:用戶不管輸入什么,都是字符串。
數(shù)據(jù)類型轉(zhuǎn)換
轉(zhuǎn)為字符串類型
- 變量+"";
- 調(diào)用toString()方法;
- 使用String()函數(shù)。(String(變量))
轉(zhuǎn)為數(shù)字類型
使用Number()函數(shù)
string 轉(zhuǎn) number
1、如果字符串中是純數(shù)字,則直接轉(zhuǎn)為數(shù)字;
2、如果字符串中有非數(shù)字內(nèi)容,則轉(zhuǎn)為 NaN;
3、如果字符串是一個(gè)空串或者是一個(gè)全是空格的字符串,則轉(zhuǎn)換為0。
Boolean 轉(zhuǎn) number
- true 轉(zhuǎn)為 1
- false 轉(zhuǎn)為 0
null 轉(zhuǎn) number
- 結(jié)果為 0
undefined 轉(zhuǎn) number
- 結(jié)果為 NaN
parseInt():字符串 -> 整數(shù)【重要】
parseInt()是專門(mén)用來(lái)對(duì)付字符串的。
parseInt()的作用是將字符串中的有效的整數(shù)內(nèi)容轉(zhuǎn)為數(shù)字
例如:
parseInt("5"); //輸出結(jié)果為數(shù)字 5
parseInt 具有以下特性:
- 只保留字符串最開(kāi)頭的數(shù)字,后面的中文自動(dòng)消失
console.log(parseInt("2017在公眾號(hào)上寫(xiě)了6篇文章")); //打印結(jié)果:2017
console.log(parseInt("2017.01在公眾號(hào)上寫(xiě)了6篇文章")); //打印結(jié)果仍是:2017 (說(shuō)明只會(huì)取整數(shù))
console.log(parseInt("aaa2017.01在公眾號(hào)上寫(xiě)了6篇文章")); //打印結(jié)果:NaN
- 自動(dòng)帶有截?cái)嘈?shù)的功能:取整,不四舍五入。
var a = parseInt(5.8) + parseInt(4.7);
console.log(a); //結(jié)果為 9
var a = parseInt(5.8 + 4.7);
console.log(a); //結(jié)果為 10
- 如果對(duì)非String使用parseInt()或parseFloat(),它會(huì)先將其轉(zhuǎn)換為String然后再操作。
var a = true;
console.log(parseInt(a)); //打印結(jié)果:NaN (因?yàn)槭窍葘轉(zhuǎn)為字符串"true",然后然后再操作)
var b = null;
console.log(parseInt(b)); //打印結(jié)果:NaN (因?yàn)槭窍葘轉(zhuǎn)為字符串"null",然后然后再操作)
var c = undefined;
console.log(parseInt(c)); //打印結(jié)果:NaN (因?yàn)槭窍葘轉(zhuǎn)為字符串"undefined",然后然后再操作)
var d = 168.23;
console.log(parseInt(d)); //打印結(jié)果:168 (因?yàn)槭窍葘轉(zhuǎn)為字符串"168.23",然后然后再操作)
轉(zhuǎn)為 Boolean
將其他的數(shù)據(jù)類型轉(zhuǎn)換為Boolean,可以使用Boolean()函數(shù)。
數(shù)字 --> 布爾。除了0和NaN,其余的都是true。
字符串 ---> 布爾。除了空串,其余的都是true。
null和undefined都會(huì)轉(zhuǎn)換為false。
對(duì)象也會(huì)轉(zhuǎn)換為true。
其他進(jìn)制的數(shù)字轉(zhuǎn)換
-16進(jìn)制的數(shù)字,以0x開(kāi)頭
8進(jìn)制的數(shù)字,以0開(kāi)頭
2進(jìn)制的數(shù)字,0b開(kāi)頭(不是所有的瀏覽器都支持:chrome和火狐支持,IE不支持)
比如070這個(gè)字符串,如果我調(diào)用parseInt()轉(zhuǎn)成數(shù)字時(shí),有些瀏覽器會(huì)當(dāng)成8進(jìn)制解析,有些會(huì)當(dāng)成10進(jìn)制解析。
所以,比較建議的做法是:可以在parseInt()中傳遞第二個(gè)參數(shù),來(lái)指定數(shù)字的進(jìn)制。例如:
a = "070";
a = parseInt(a,10); //轉(zhuǎn)換成十進(jìn)制