javascript
JavaScript基础:(加号,数值转换,布尔转换)
JavaScript中加號運算符"+" 運算過程理解
1) 如果其中一個操作數是對象,則對象會遵循對象到原始值的轉換規則轉換為原始值。日期對象通過toString()方法執行轉換,其它對象則通過valueOf()方法執行轉換。由于多數對象都不具備valueOf()方法,因此就會調用toString()方法來進行轉換。?
2)在進行對象到原始值的轉換后,如果其中一個操作數是字符串的話,則另一個操作數也會轉換為字符串,然后進行字符串的連接操作。?
3)否則,兩個操作數都將轉換為數字(或者NaN),然后進行加法操作。
不同類型操作數相加后的類型如下表:
| ? | undefined1 | null2? ? ?? | boolean3 | number4 | string |
| undefined | number(NaN) | number | number | number | string |
| null | number(NaN) | number(0) | number | number | string |
| boolean | number(NaN) | number(1或0) | number | number | string |
| number | number(NaN) | number | number | number | string |
| string | string | string | string | string | string |
?1、
“a”+undefined = “aundefined”;
總結:任何基本數據類型(除String外)+undefined都為number類型,值為NaN
?2、
true+null=1;(true轉為1,null轉為0)
false+null=0;(false轉為0,null轉為0)
10+null=10;
null+“str”=”nullstr”;
3、
true+true=2;(true轉為1)
true+false=1;(true轉為1,false轉為0)
10+true=11;(true轉為1)
true+“1”=“true1”;
4、
6+“77”=“677”?
?
JavaScript中parseInt()和parseFloat()非強制轉換,Number()強制轉換
1、parseInt(string, radix): 函數可解析一個字符串,并返回一個整數。
當忽略參數 radix , JavaScript 默認數字的基數如下:當參數 radix 的值為 0,或沒有設置該參數時,parseInt() 會根據 string 來判斷數字的基數。
- 如果 string 以 "0x" 開頭,parseInt() 會把 string 的其余部分解析為十六進制的整數。
- 如果 string 以 0 開頭,ECMAScript版本小于ECMAScript 5,當字符串以"0"開頭時默認使用八進制,ECMAScript 5使用的是十進制
- 如果 string 以 1 ~ 9 的數字開頭,parseInt() 將把它解析為十進制的整數。
例:
parseInt(“123”);123
parseInt(“ 0消費”);0(忽略前面的空格)
parseInt(“0xf”);15
parseInt(“0 xf”);0 ? ? ? (中間的空格不忽略)
2、parseFloat(string): 函數可解析一個字符串,并返回一個浮點數。
提示和注釋
開頭和結尾的空格是允許的。
提示:如果字符串的第一個字符不能被轉換為數字,那么 parseFloat() 會返回 NaN。
提示:如果只想解析數字的整數部分,請使用 parseInt() 方法。
實例
例子 1
在本例中,我們將使用 parseFloat() 來解析不同的字符串:
<script type="text/javascript">document.write(parseFloat("10")) document.write(parseFloat("10.00")) document.write(parseFloat("10.33")) document.write(parseFloat("34 45 66")) document.write(parseFloat(" 60 ")) document.write(parseFloat("40 years")) document.write(parseFloat("He was 40"))</script>輸出:
10 10 10.33 34 60 40 NaN例子 2
下面的例子都返回 3.14:
<script type="text/javascript">document.write(parseFloat("3.14")) document.write(parseFloat("314e-2")) document.write(parseFloat("0.0314E+2")) document.write(parseFloat("3.14more non-digit characters")) </script>輸出:
3.14例子 3
下面的例子將返回 NaN:
<script type="text/javascript">document.write(parseFloat("FF2")) </script>輸出:
NaN
3、Number():強制轉化,如果轉換的是字符串,字符串內必須都是有效的數字字符才可以轉換,如過有一個不是有效數字,則無法轉換,會返回NaN。
var cur="1adc";
var?str="1";
console.log(Number(cur));//NaN
console.log(Number(str));//1
4、Booleanr():強制轉化
1、除0(-0)之外的所有數字,轉換為boolean型都為true
2、除“”(空字符串)之外的所有字符轉為boolean 都為true,空格字符串也為true
3、null和undefined轉換為boolean型是false
4、特殊數字NaN轉為boolean型也為false
(有就true,無就false,特殊NaN永遠都是false)
轉載于:https://www.cnblogs.com/zwjx/p/7729509.html
總結
以上是生活随笔為你收集整理的JavaScript基础:(加号,数值转换,布尔转换)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据存储方案-闭包表
- 下一篇: Java数字匹配的kmp算法