JS存在不同的數(shù)據(jù)類型, 這就需要一些方法將不同的數(shù)據(jù)類型做轉(zhuǎn)換。
轉(zhuǎn)數(shù)字類型
其他類型的值轉(zhuǎn)換成數(shù)字, 這在工作中很常見。
有以下幾種轉(zhuǎn)換方式
- Number 函數(shù)
- parseInt 函數(shù)
- parseFloat 函數(shù)
Number
Number 函數(shù)可以將 其他類型轉(zhuǎn)成 數(shù)字類型,具體示例如下
字符串轉(zhuǎn)數(shù)字
<script>
// 輸出123
console.log(Number("123"));
// 輸出: 12000; 支持科學(xué)計數(shù)法
console.log(Number("12e3"));
// 輸出:123.3; 支持浮點數(shù)
console.log(Number("123.3"));
// 輸出: NaN; 帶有非數(shù)字字符無法轉(zhuǎn)換
console.log(Number("12.13zimu"));
</script>
布爾轉(zhuǎn)數(shù)字
<script>
// 輸出0, flase 對應(yīng) 數(shù)字 0
console.log(Number(false));
// 輸出1, true 對應(yīng)數(shù)字 1
console.log(Number(true));
</script>
undefined 和 null 轉(zhuǎn)數(shù)字
<script>
// 輸出NaN
console.log(Number(undefined));
// 輸出 0 ; 所以 要小心null, 如果涉及到 null 不能夠轉(zhuǎn)數(shù)字的情況,提前做好判斷
console.log(Number(null));
</script>
parseInt 函數(shù)
只能將字符串轉(zhuǎn)換成整型值(小數(shù)點后面的不要)
和 Number 的區(qū)別是 parseInt ?如果是數(shù)字開頭, 則數(shù)字字符部分能夠被提取轉(zhuǎn)換成數(shù)字類型
字符串轉(zhuǎn)數(shù)字
<script>
// 輸出 123
console.log(parseInt('123'));
// 輸出 123 , 保留整數(shù)部分
console.log(parseInt('123.56'));
//數(shù)字開頭的保留整數(shù)部分
console.log(parseInt('123.56是你嗎'));
// 字母開頭的 輸出 NaN
console.log(parseInt('字符串開頭123.56'));
</script>
除了字符, parseInt 函數(shù)無法將其他類型值轉(zhuǎn)成普通數(shù)字,統(tǒng)一輸出 NaN
<script>
// 輸出: NaN
console.log(parseInt(true));
console.log(parseInt(false));
console.log(parseInt(undefined));
console.log(parseInt(null));
</script>
paseFloat 函數(shù)
字符串轉(zhuǎn)浮點數(shù)字
<script>
// 輸出: 273.1212; 字符串轉(zhuǎn)浮點數(shù)
console.log(parseFloat("273.1212"));
// 輸出: 323.2323; 數(shù)字開頭的,則提取數(shù)字字符部分,轉(zhuǎn)換成數(shù)字
console.log(parseFloat("323.2323后面跟著字符"));
// 輸出: NaN 首位是非數(shù)字字符的無法處理
console.log(parseFloat("前面有字符21212"));
</script>
除了字符, paseFloat 函數(shù)無法將其他類型值轉(zhuǎn)成普通數(shù)字,統(tǒng)一輸出 NaN
<script>
console.log(parseFloat(true));
console.log(parseFloat(false));
console.log(parseFloat(undefined));
console.log(parseFloat(null));
</script>
轉(zhuǎn)字符類型
其他類型轉(zhuǎn)成字符類型可以用下面的方法
- String 函數(shù)
- toString 函數(shù)
String 函數(shù)
使用此函數(shù)可以將其它類型的值轉(zhuǎn)為String函數(shù)。
數(shù)字類型轉(zhuǎn)字符串類型
<script>
// 輸出 '123', 數(shù)字類型轉(zhuǎn)成字符類型
console.log(String(123));
// 輸出 'NaN'
console.log(NaN);
</script>
布爾類型轉(zhuǎn)字符串類型
<script>
// 輸出 'true'
console.log(String(true));
//輸出 'false'
console.log(String(false));
</script>
undefined和null 轉(zhuǎn) 字符串類型
<script>
// 輸出 undefined
console.log(String(undefined));
// 輸出 null
console.log(String(null));
</script>
任何類型的值,都可以原樣轉(zhuǎn)成字符串類型
toString 函數(shù)
數(shù)字類型轉(zhuǎn)字符串類型
<script>
var num = 3;
// 輸出 3
console.log(num.toString());
</script>
布爾類型轉(zhuǎn)字符串類型
//輸出 true
console.log(true.toString());
undefined和null 無法通過 toString 函數(shù)轉(zhuǎn)成字符類型
轉(zhuǎn)布爾類型
Boolean 函數(shù)
數(shù)字類型轉(zhuǎn)布爾
- 數(shù)字0 和 NaN 轉(zhuǎn) 布爾值為flase
- 除了0 和 NaN 轉(zhuǎn)成 true
<script>
// 輸出 true
console.log(Boolean(123));
// 輸出true
console.log(Boolean(-124));
// 輸出false
console.log(Boolean(0));
// 輸出 true
console.log(Boolean(NaN));
</script>
字符串類型轉(zhuǎn)布爾
- 空字符串轉(zhuǎn)為false
- 其他都是true
<script>
// 輸出 false
console.log(Boolean(''));
// 輸出 true 帶有空格的字符串不算空字符串
console.log(Boolean(' '));
// 輸出 true
console.log(Boolean('halou'));
// 輸出 true
console.log(Boolean('false'));
// 輸出 true
console.log(Boolean('false'));
</script>
undefined 和 null 轉(zhuǎn) 布爾值
統(tǒng)一為false
<script>
// 輸出 false
console.log(Boolean(undefined));
// 輸出 false
console.log(Boolean(null));
</script>
編碼過程中注意 undefined、null 和 和 ‘undefined’, ‘null’ 的區(qū)別, 前者是 代表 的是兩個特殊值, 后者代表的是 字符串類型,他們轉(zhuǎn)換 成 布爾類型 后的值完全不同。文章來源:http://www.zghlxwxcb.cn/news/detail-700045.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-700045.html
到了這里,關(guān)于JS基礎(chǔ)-數(shù)據(jù)類型轉(zhuǎn)換的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!