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