Javascript類型轉(zhuǎn)換詳解
類型轉(zhuǎn)換
1.String->Number
const string = "99"; // 隱式轉(zhuǎn)換 console.log(string * 1 + 77); // 顯式轉(zhuǎn)換 console.log(Number(string) + 77);
2.Number->String
const number = 66; console.log(typeof number); // 隱式轉(zhuǎn)換 console.log(typeof (number + "")); // 顯式轉(zhuǎn)換 console.log(typeof String(number));
3.混合String->Number
把位于開頭的數(shù)值字符串轉(zhuǎn)為數(shù)值型
const string = "66.66alison"; console.log(parseInt(string)); console.log(parseFloat(string));
4.String->Array
const name = "alison"; console.log(name.split(""));
5.Array->String
const array = ["yooo", "alison", "ruby", "andy"]; console.log(array.join("")); console.log(array.join("&"));
6.Array->Number
空數(shù)組為0,x單元素數(shù)組為x,多元素數(shù)組為NaN
console.log(Number([])); console.log(Number([3])); console.log(Number([1, 2, 3]));
7.toString()
主要用于將Array(由逗號隔開)、Boolean、Date、Number等對象轉(zhuǎn)換成String。
const array = ["yooo", "alison", "ruby", "andy"]; console.log(array.toString()); const number = 99; console.log(typeof number.toString());
8.Boolean隱式轉(zhuǎn)換
比較和運(yùn)算是兩件事
(1)比較
在將boolean與number、string比較時,會隱式地將boolean中的true轉(zhuǎn)為1、false轉(zhuǎn)為0
let number = 99; console.log(number == true);
let hd = '0'; let hd2 = "1"; let hd3 = "99"; console.log(hd == false); console.log(hd2 == true); console.log(hd3 == true);
(2)運(yùn)算
在運(yùn)算中string和number會被隱式轉(zhuǎn)換為boolean
let number = 99; if (number) console.log("number");
(3)其他類型轉(zhuǎn)換為Boolean
console.log(Boolean([])); console.log(Boolean({}));
假 | 真 | |
---|---|---|
數(shù)值類型 | 0 | 其他 |
字符串類型 | 空串 | 其他 |
引用類型 | 數(shù)組和對象 |
9.Boolean顯式轉(zhuǎn)換
(1)!!
!先將number轉(zhuǎn)換為boolean類型,然后再取反
!!相當(dāng)于把數(shù)值轉(zhuǎn)為布爾
(2)構(gòu)造函數(shù) Boolean()
// 數(shù)值 let number = 0; number = !!number; console.log(Boolean(number)); // 字符串 let string = "Alison"; console.log(!!string); console.log(Boolean(string)); // 數(shù)組 let array = []; console.log(!!array); console.log(Boolean(array)); // 對象 let object = {}; console.log(!!object); console.log(Boolean(object)); // 日期 let date = new Date(); console.log(!!date); console.log(Boolean(date));
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
bootstrap fileinput 上傳插件的基礎(chǔ)使用
這篇文章主要介紹了bootstrap fileinput 上傳插件基礎(chǔ)使用,重點(diǎn)是把界面做得更加友好,更好的增加用戶體驗(yàn)。對bootstrap fileinput知識感興趣的朋友通過本文一起學(xué)習(xí)吧2017-02-02javascript特效實(shí)現(xiàn)——當(dāng)前時間和倒計(jì)時效果的簡單實(shí)例
下面小編就為大家?guī)硪黄猨avascript特效實(shí)現(xiàn)——當(dāng)前時間和倒計(jì)時效果的簡單實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07setInterval 和 setTimeout會產(chǎn)生內(nèi)存溢出
jscript 5.7 發(fā)布修復(fù)了不少ie javascript內(nèi)存泄露的問題。但是leak依然存在。當(dāng)我們頻繁使用 setInterval 和 setTimeout 時就會每幾秒鐘出現(xiàn)32k leak...2008-02-02js漢字排序問題 支持中英文混排,兼容各瀏覽器,包括CHROME
這套排序機(jī)制同時兼容了IE和ff 可以實(shí)現(xiàn)所有瀏覽器下排序的統(tǒng)一哦2011-12-12javascript中節(jié)點(diǎn)的最近的相關(guān)節(jié)點(diǎn)訪問方法
parentNode——父節(jié)點(diǎn);firstChild——第一個子節(jié)點(diǎn);lastChild——最后一個子節(jié)點(diǎn);previousSibling——緊挨著的前面的兄弟節(jié)點(diǎn);這樣就可以作短途旅行,訪問當(dāng)前節(jié)點(diǎn)的某些相關(guān)節(jié)點(diǎn),感興趣的你可以參考下哈2013-03-03JS中如何判斷傳過來的JSON數(shù)據(jù)中是否存在某字段
這篇文章主要介紹了JS中如何判斷傳過來的JSON數(shù)據(jù)中是否存在某字段,需要的朋友可以參考下2014-08-08