JS-轉(zhuǎn)換類型

轉(zhuǎn)換為字符串類型

  • 將其它基本數(shù)據(jù)類型轉(zhuǎn)換為字符串類型的第一種方式
    1. 對(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)制

    2. 對(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)換為字符串類型的第三種方式

    1. toString()方法只能將Number和Boolean類型轉(zhuǎn)換為字符串
    2. 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ù)即可

    1. 對(duì)于字符串:
      如果字符串中都是數(shù)字, 那么就正常轉(zhuǎn)換
      如果字符串中不僅僅有數(shù)字, 那么轉(zhuǎn)換為NaN
      如果字符串中沒(méi)有內(nèi)容"" " ", 那么就轉(zhuǎn)換為0

    2. 對(duì)于布爾類型: true轉(zhuǎn)換為1, false轉(zhuǎn)換為0

    3. 對(duì)于null: 轉(zhuǎn)換為0

    4. 對(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類型第三種方式:

    1. 通過(guò)Number函數(shù)或者通過(guò)+-運(yùn)算符轉(zhuǎn)換, 都不能轉(zhuǎn)換復(fù)雜的字符串
      例如: "12px"

    2. 所以就有第三種轉(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ù)即可

    1. 對(duì)于字符串而言:
      只要不是空字符串(沒(méi)有任何內(nèi)容), 都會(huì)轉(zhuǎn)換為 false
      只要字符串中有內(nèi)容(包含空格/Table), 都會(huì)轉(zhuǎn)換為 true

    2. 對(duì)于Number類型而言: 只要不是 0 都會(huì)轉(zhuǎn)換為 true, 只有0會(huì)轉(zhuǎn)換為 false

    3. 對(duì)于 null 和 undefined 而言, 都會(huì)轉(zhuǎn)換為 false

    4. 對(duì)于 NaN 也會(huì)轉(zhuǎn)換為false

    總結(jié): "" / 0 / null / undefined / NaN --> false

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末融欧,一起剝皮案震驚了整個(gè)濱河市蛆楞,隨后出現(xiàn)的幾起案子来候,更是在濱河造成了極大的恐慌链韭,老刑警劉巖顿锰,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寓免,死亡現(xiàn)場(chǎng)離奇詭異叠荠,居然都是意外死亡胸梆,警方通過(guò)查閱死者的電腦和手機(jī)敦捧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)碰镜,“玉大人兢卵,你說(shuō)我怎么就攤上這事⌒饔保” “怎么了秽荤?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)柠横。 經(jīng)常有香客問(wèn)我窃款,道長(zhǎng),這世上最難降的妖魔是什么牍氛? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任晨继,我火速辦了婚禮,結(jié)果婚禮上搬俊,老公的妹妹穿的比我還像新娘踱稍。我一直安慰自己,他們只是感情好悠抹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布珠月。 她就那樣靜靜地躺著,像睡著了一般楔敌。 火紅的嫁衣襯著肌膚如雪啤挎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音庆聘,去河邊找鬼胜臊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛伙判,可吹牛的內(nèi)容都是我干的象对。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宴抚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼勒魔!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起菇曲,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤冠绢,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后常潮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弟胀,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年喊式,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了孵户。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡岔留,死狀恐怖夏哭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贸诚,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布厕吉,位于F島的核電站酱固,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏头朱。R本人自食惡果不足惜运悲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望项钮。 院中可真熱鬧班眯,春花似錦、人聲如沸烁巫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)亚隙。三九已至磁餐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阿弃,已是汗流浹背诊霹。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工羞延, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脾还。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓伴箩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親鄙漏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嗤谚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容