JavaScript 減法運(yùn)算
■實例設(shè)計
特殊操作數(shù)的減法運(yùn)算。
var n = 5; //定義并初始化任意一個數(shù)'值:V
console.log (NaN- n); //NaN與任意操作數(shù)相減,:.結(jié)果都是^al?:
console.log (Infinity - n); //Infinity 與任意操作數(shù)相減,結(jié)果都是 Infinity
console.log {Infinity - Infinity); //Infinity 與/Infinity.相減,.結(jié)果是NaN
console.log (( - Infinity) - ( - Infinity)); //負(fù) Infinity 相減,結(jié)果是.NaN
console, log ( ( - Infinity) - Infinity); //正負(fù) Infinity 相減,結(jié)果是-Iirfinity
在減法運(yùn)算中,如果數(shù)字為字符串,先嘗試把它轉(zhuǎn)換為數(shù)值之后,再進(jìn)行運(yùn)算。如果有一個操作數(shù)不是數(shù)字,則返回NaN。
console.log(2 - "1"); //返回100
cbnsoie.log(2 - "a"); //返回NaN
■小結(jié)
使用值減去0,可以快速把值轉(zhuǎn)換為數(shù)字。例如,HTTP請求中查詢字符串的一般都是字符串型數(shù)字,可以先讓這些參數(shù)值減去0后轉(zhuǎn)換為數(shù)值。該方法與調(diào)用parseFloat()方法的結(jié)果相同,但減法運(yùn)算更高效、更快捷。減法運(yùn)算符的隱性轉(zhuǎn)換如果失敗,則返回NaN,這與使用parseFloat()方法執(zhí)行轉(zhuǎn)換時
的返回值是不同的。
例如,對于宇符串"lOOaaa"而言,parseFloatO方法能夠解析出前面幾個數(shù)字,而對于減法運(yùn)算符來說,則必須是完整的數(shù)字才可以進(jìn)行轉(zhuǎn)換。
console. log (parseFloat ("lOOaaa")); //返回 100
console. log ("lOOaaa" - 0); //返回 NaN
對于布爾值來說,parseFloatO方法能夠把true轉(zhuǎn)換為1,把false轉(zhuǎn)換為0,而減法運(yùn)算符視其為NaN。
對于對象來說,parseFloatO方法會嘗試調(diào)用對象的toStringG方法進(jìn)行轉(zhuǎn)換,而減法運(yùn)算符則先嘗試調(diào)用對象的valueOfO方法進(jìn)行轉(zhuǎn)換,失敗之后再調(diào)用toStringO方法進(jìn)行轉(zhuǎn)換。
點(diǎn)擊加載更多評論>>