變量及強(qiáng)制類型轉(zhuǎn)換

  • 在變量中加入字符串進(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)制
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容