gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

es6 number對(duì)象的新增方法有哪些

es6 number新增方法有:1、“Number.isFinite()”,可判斷指定值是否為一個(gè)有限的數(shù)值;2、“Number.isNaN()”,可檢測(cè)變量是否是一個(gè)NaN;3、“Number.parseInt()”,可將字符串轉(zhuǎn)換為整數(shù);4、“Number.parseFloat()”,可將字符串轉(zhuǎn)換為浮點(diǎn)數(shù);5、“Number.isInteger()”,可判斷值是否為整數(shù)。

es6 number對(duì)象的新增方法有哪些

前端(vue)入門到精通課程:進(jìn)入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用

本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。

在 ES5 中,全局下的 isFinite () 和 isNaN () 兩種方法存在類型轉(zhuǎn)換,對(duì)最終的判斷結(jié)果存在歧義。ES6 在 Number 對(duì)象上,新提供了 Number.isFinite () 和 Number.isNaN () 兩個(gè)方法,更加健壯地進(jìn)行數(shù)值的判斷,接下來(lái)讓我看看這兩種方法。

Number.isFinite()


在 ES5 中有全局的 isFinite() 函數(shù)用來(lái)判斷被傳入的參數(shù)值是否為一個(gè)有限的數(shù)值,如果參數(shù)是字符串,會(huì)首先轉(zhuǎn)為一個(gè)數(shù)值,然后在進(jìn)行驗(yàn)證。

isFinite(Infinity);  // false isFinite(NaN);       // false isFinite(-Infinity); // false  isFinite(0);         // true isFinite(2e64);      // true isFinite('2e64');    // true  isFinite("0");       // true
登錄后復(fù)制

上面的代碼可以看出,字符串也會(huì)被先轉(zhuǎn)為數(shù)值再進(jìn)行判斷,而 ES6 Number 對(duì)象上提供的 isFinite() 更健壯,和全局的 isFinite() 函數(shù)相比,這個(gè)方法不會(huì)強(qiáng)制將一個(gè)非數(shù)值的參數(shù)轉(zhuǎn)換成數(shù)值,這就意味著,只有數(shù)值類型的值,且是有窮的(finite),才返回 true。

Number.isFinite(Infinity);  // false Number.isFinite(NaN);       // false Number.isFinite(-Infinity); // false  Number.isFinite(0);         // true Number.isFinite(2e64);      // true Number.isFinite('2e64');	// false  Number.isFinite('0');       // false
登錄后復(fù)制

Number.isNaN()


在 JavaScript 中與其它的值不同,NaN 不能通過(guò)相等操作符(== 和 ===)來(lái)判斷 ,因?yàn)?NaN == NaN 和 NaN === NaN 都會(huì)返回 false。 因此,判斷一個(gè)值是不是 NaN 是有必要的。

1、NaN 值的產(chǎn)生

當(dāng)算術(shù)運(yùn)算的結(jié)果返回一個(gè)未定義的或無(wú)法表示的值時(shí),NaN 就產(chǎn)生了。但是,NaN 并不一定用于表示某些值超出表示范圍的情況。

  • 將某些非數(shù)值強(qiáng)制轉(zhuǎn)換為數(shù)值的時(shí)候,會(huì)得到 NaN。

  • 0 除以 0 會(huì)返回 NaN —— 但是其他數(shù)除以 0 則不會(huì)返回 NaN。

我們知道可以使用 Number() 方法進(jìn)行類型轉(zhuǎn)換,下面列舉被強(qiáng)制類型轉(zhuǎn)換為 NaN 的例子:

Number(undefined)				// NaN Number('undefined')				// NaN Number('string')				// NaN Number({})						// NaN Number('10,3')					// NaN Number('123ABC')				// NaN Number(new Date().toString())	// NaN
登錄后復(fù)制

上面的例子可以看出,很多值在強(qiáng)制類型轉(zhuǎn)換下轉(zhuǎn)為 NaN,針對(duì)這樣的值去進(jìn)行判斷無(wú)疑是有問(wèn)題的,下面我們來(lái)看下 isNaN () 的問(wèn)題。

2、isNaN () 的問(wèn)題

默認(rèn)情況全局下存在方法 isNaN () 用了判斷是否為 NaN 值,它要求接收的是數(shù)值類型的參數(shù),但是當(dāng)參數(shù)不是 Number 類型, isNaN 函數(shù)會(huì)首先嘗試將這個(gè)參數(shù)轉(zhuǎn)換為數(shù)值,然后才會(huì)對(duì)轉(zhuǎn)換后的結(jié)果是否是 NaN 進(jìn)行判斷。

實(shí)例:

isNaN(NaN);       // true isNaN(undefined); // true isNaN('undefined')// true isNaN({});        // true  isNaN(true);      // false isNaN(null);      // false isNaN(37);        // false  // strings isNaN("37");      // false: 可以被轉(zhuǎn)換成數(shù)值37 isNaN("37.37");   // false: 可以被轉(zhuǎn)換成數(shù)值37.37 isNaN("37,5");    // true isNaN('123ABC');  // true:  parseInt("123ABC")的結(jié)果是 123, 但是Number("123ABC")結(jié)果是 NaN isNaN("");        // false: 空字符串被轉(zhuǎn)換成0 isNaN(" ");       // false: 包含空格的字符串被轉(zhuǎn)換成0  // dates isNaN(new Date());                // false isNaN(new Date().toString());     // true  isNaN("imooc")   // true: "blabla"不能轉(zhuǎn)換成數(shù)值                  // 轉(zhuǎn)換成數(shù)值失敗, 返回NaN
登錄后復(fù)制

結(jié)合上面 NaN 是如何產(chǎn)生的例子的結(jié)果可以看出,使用 isNaN 來(lái)判斷返回的是 true,這顯然不是我們想要的結(jié)果。針對(duì)這樣的問(wèn)題,ES6 做了修補(bǔ),下面我們看 ES6 中的 isNaN 方法。

3、Number.isNaN () 詳情

ES6 提供了 Number.isNaN(x) ,通過(guò)這個(gè)方法來(lái)檢測(cè)變量 x 是否是一個(gè) NaN 將會(huì)是一種可靠的做法,它不會(huì)對(duì)所判斷的值進(jìn)行強(qiáng)制類型轉(zhuǎn)換。

Number.isNaN(NaN);        // true Number.isNaN(Number.NaN); // true Number.isNaN(0 / 0)       // true  // 下面這幾個(gè)如果使用全局的 isNaN() 時(shí),會(huì)返回 true。 Number.isNaN("NaN");      // false,字符串 "NaN" 不會(huì)被隱式轉(zhuǎn)換成數(shù)字 NaN。 Number.isNaN(undefined);  // false Number.isNaN('undefined');// false Number.isNaN({});         // false Number.isNaN("blabla");   // false  Number.isNaN(true);   	 // false Number.isNaN(null);   	 // false Number.isNaN(37);   	 // false Number.isNaN("37");   	 // false Number.isNaN("37.37");	 // false Number.isNaN("");   	 // false Number.isNaN(" ");   	 // false
登錄后復(fù)制

通過(guò)上面的實(shí)例,基本覆蓋了現(xiàn)有程序的所有情況,不會(huì)出現(xiàn)使用全局下的 isNaN() 多帶來(lái)的問(wèn)題。所有推薦使用 Number.isNaN(x) 方式來(lái)判斷是否是 NaN。在不支持 Number.isNaN 函數(shù)情況下,可以通過(guò)表達(dá)式 (x != x) 來(lái)檢測(cè)變量 x 是不是 NaN 會(huì)更加可靠。

Number.parseInt()&Number.parseFloat()


為了保持方法上的統(tǒng)一,把全局下的 parseInt() 和 parseFloat() 移植到 ES6 的 Number 對(duì)象上。

ES6 的 Number 對(duì)象上提供的 Number.isFinite () 和 Number.isNaN () 兩個(gè)函數(shù)是相同的,如何證明 Number 下的這兩個(gè)方法只是移植全局的呢?可以利用 === 運(yùn)算符來(lái)判斷,如下實(shí)例:

Number.parseInt === parseInt;				// true Number.parseFloat === parseFloat;		// true
登錄后復(fù)制

上面的代碼返回的結(jié)果都為 ture 說(shuō)明此兩種函數(shù)和全局是一樣的,沒(méi)有發(fā)生變化。具體的使用方法可以參考 ES5 中的 parseInt() 和 parseFloat() 函數(shù)。

// ES5的寫(xiě)法 parseInt('12.34') 						// 12 parseFloat('123.45#') 				// 123.45  // ES6的寫(xiě)法 Number.parseInt('12.34') 			// 12 Number.parseFloat('123.45#')  // 123.45
登錄后復(fù)制

將這兩個(gè)全局方法移植到 Number 對(duì)象上,為了逐步減少全局性方法,使語(yǔ)言逐步模塊化。

Number.isInteger()


在學(xué)習(xí)這個(gè)函數(shù)之前,我們先來(lái)回顧一下,我們是怎么判斷一個(gè)值為整數(shù)的?

1、判斷一個(gè)值為整數(shù)

一種方法是:任何整數(shù)都會(huì)被 1 整除,即余數(shù)是 0。利用這個(gè)規(guī)則來(lái)判斷是否是整數(shù)。就有如下函數(shù):

function isInteger(value) { 	return typeof value === 'number' && value%1 === 0; } isInteger(5) 		// true isInteger(5.5) 	// false isInteger('') 	// false isInteger('8') 	// false isInteger(true) // false isInteger([]) 	// false
登錄后復(fù)制

另一種方法是:使用 Math.round、Math.ceil、Math.floor 判斷,因?yàn)檎麛?shù)取整后還是等于自己。利用這個(gè)特性來(lái)判斷是否是整數(shù),使用 Math.floor 示例,如下:

function isInteger(value) { 	return Math.floor(value) === value; } isInteger(5) 		// true isInteger(5.5) 	// false isInteger('') 	// false isInteger('8') 	// false isInteger(true) // false isInteger([]) 	// false
登錄后復(fù)制

上面的兩種方法算是比較常用的判斷方式,其他的一些方式都存在一些問(wèn)題,這里就不一一列舉了。但是,這兩種方法都不夠簡(jiǎn)潔,ES6 把判斷整數(shù)提升到了語(yǔ)言層面,下面我們來(lái)看下 Number.isInteger() 的使用。

2、Number.isInteger () 的用法

Number.isInteger() 是 ES6 新增的函數(shù),用來(lái)判斷給定的參數(shù)是否為整數(shù)。

Number.isInteger(25) // true Number.isInteger(25.1) // false
登錄后復(fù)制

如果被檢測(cè)的值是整數(shù),則返回 true,否則返回 false。注意 NaN 和正負(fù) Infinity 不是整數(shù)。

Number.isInteger(0);         // true Number.isInteger(1);         // true Number.isInteger(-100000);   // true  Number.isInteger(0.8);       // false Number.isInteger(Math.PI);   // false  Number.isInteger(Infinity);  // false Number.isInteger(-Infinity); // false Number.isInteger("100");     // false Number.isInteger(true);      // false Number.isInteger(false);     // false Number.isInteger([1]);       // false
登錄后復(fù)制

上面的代碼基本涵蓋了 JavaScript 中的值的判斷,在一些不支持 ES6 語(yǔ)法的瀏覽器中可以使用上面的兩種方式進(jìn)行 Polyfill 處理。

Number.isSafeInteger()


Number.isSafeInteger() 是 ES6 新增的函數(shù),用來(lái)判斷傳入的參數(shù)值是否是一個(gè) “安全整數(shù)”(safe integer)在數(shù)值擴(kuò)展的 小節(jié) 我們介紹了最大安全整數(shù)和最小安全整數(shù),不記得的同學(xué)可以跳過(guò)去看看。

一個(gè)安全整數(shù)是一個(gè)符合下面條件的整數(shù):

  • 可以準(zhǔn)確地表示為一個(gè) IEEE-754 雙精度數(shù)字;

  • 其 IEEE-754 表示不能是舍入任何其他整數(shù)以適應(yīng) IEEE-754 表示的結(jié)果。

比如,2e53 – 1 是一個(gè)安全整數(shù),它能被精確表示,在任何 IEEE-754 舍入模式(rounding mode)下,沒(méi)有其他整數(shù)舍入結(jié)果為該整數(shù)。作為對(duì)比,2e53 就不是一個(gè)安全整數(shù),它能夠使用 IEEE-754 表示,但是 2e53 + 1 不能使用 IEEE-754 直接表示,在就近舍入(round-to-nearest)和向零舍入中,會(huì)被舍入為 2e53。

安全整數(shù)范圍為 -(2e53 – 1)到 2e53 – 1 之間的整數(shù),包含 -(2e53 – 1)和 2e53 – 1。

Number.isSafeInteger(3);                    // true Number.isSafeInteger(Math.pow(2, 53))       // false Number.isSafeInteger(Math.pow(2, 53) - 1)   // true Number.isSafeInteger(NaN);                  // false Number.isSafeInteger(Infinity);             // false Number.isSafeInteger("3");                  // false Number.isSafeInteger(3.1);                  // false Number.isSafeInteger(3.0);                  // true
登錄后復(fù)制

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
欧美激情第一区| 国产成人精品视频免费看| 日韩av三级在线| 久艹视频在线免费观看| 91麻豆天美传媒在线| 日韩欧美中文视频| 性久久久久久久久久久久久久| 亚洲欧美自偷自拍另类| 亚洲36d大奶网| 国产精品区在线| 日韩精品视频网址| 欧美一级黄色录像片| 精品综合久久久久| 在线观看av的网址| av高清在线免费观看| 成人免费观看视频在线观看| 欧美牲交a欧美牲交| 国产男女激情视频| 伊人国产精品视频| 2021狠狠干| 日本www在线播放| 老司机午夜性大片| 日韩不卡一二区| 伊人成色综合网| 色呦色呦色精品| 久久久久久久久久伊人| 日韩中文字幕在线视频观看| 日韩毛片在线免费看| 26uuu成人| www..com日韩| 午夜av中文字幕| 日本三级免费网站| 天堂v在线视频| 久久美女福利视频| 日本美女久久久| 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 热久久精品免费视频| 国产成人强伦免费视频网站| 久久av综合网| 一个色综合久久| 国产精品丝袜久久久久久消防器材| 亚洲成人av免费看| 亚洲 欧美 日韩 国产综合 在线| 激情五月开心婷婷| 久久亚洲a v| 9l视频白拍9色9l视频| av影院在线播放| 亚洲天堂2018av| 亚洲 高清 成人 动漫| www.com久久久| 亚洲爆乳无码专区| 国产中文字幕乱人伦在线观看| 99视频在线视频| 日韩视频免费播放| 丰满人妻一区二区三区53号| 亚洲第一中文av| 日韩avxxx| 国产真人做爰毛片视频直播 | 在线视频日韩欧美| 一区二区三区入口| 日韩欧美黄色大片| 那种视频在线观看| 久久久性生活视频| 久久久久99精品成人片| 红桃视频一区二区三区免费| 国内国产精品天干天干| 粉嫩虎白女毛片人体| 男人操女人逼免费视频| 国产欧美精品aaaaaa片| 欧美交换配乱吟粗大25p| 国产精品探花在线播放| 一级黄色在线播放| 欧美日韩在线免费观看视频| 爱豆国产剧免费观看大全剧苏畅| 美女在线视频一区二区| 极品粉嫩美女露脸啪啪| 三级黄色片播放| 男女啪啪免费观看| 亚洲精品蜜桃久久久久久| www.avtt| 天天影视综合色| 日韩精品aaa| 天堂а√在线中文在线| 欧美视频在线观看网站| 国产97在线 | 亚洲| 天堂中文视频在线| av磁力番号网| 国产黄色一级网站| 免费涩涩18网站入口| 久久久国产精华液999999 | 亚洲 高清 成人 动漫| 日韩无套无码精品| 欧美日韩久久婷婷| 欧美日韩性生活片| 污污的网站18| 丰满的少妇愉情hd高清果冻传媒| 欧美精品99久久| 91插插插影院| 国产青青在线视频| 在线视频日韩欧美| 37pao成人国产永久免费视频| 欧美午夜aaaaaa免费视频| 最新视频 - x88av| 狠狠操精品视频| 成年人网站大全| 日本黄色播放器| 中文 日韩 欧美| 国产不卡一区二区视频| 人人干人人视频| 99亚洲精品视频| 超碰av在线免费观看| 日韩精品一区二区三区电影| 毛片在线视频播放| 999热精品视频| 亚洲一区二区三区四区五区xx| 精品少妇人妻av一区二区| 人妻无码视频一区二区三区| www.99riav| 国产喷水theporn| 国产原创中文在线观看| 激情六月天婷婷| 色噜噜狠狠一区二区三区狼国成人| 夫妻免费无码v看片| 国产乱人伦精品一区二区三区| 日本中文字幕二区| 爆乳熟妇一区二区三区霸乳| 丁香花在线影院观看在线播放| 免费看啪啪网站| 992tv人人草| 午夜在线视频免费观看| 狠狠躁狠狠躁视频专区| www.欧美日本| 一区二区在线播放视频| 无码内射中文字幕岛国片| 99热成人精品热久久66| 无码无遮挡又大又爽又黄的视频| 黄色www网站| 1024精品视频| 一本久道综合色婷婷五月| 日日碰狠狠躁久久躁婷婷| 日韩精品一区中文字幕| 无码日韩人妻精品久久蜜桃| 草草草在线视频| 最新免费av网址| 欧美 日韩 国产精品| 最新黄色av网站| 91免费黄视频| 久久人妻精品白浆国产 | 国产网站免费在线观看| 成人黄色片视频| 亚洲午夜激情影院| 久久视频免费在线| 黄色一级在线视频| 国产三级三级三级看三级| 黄色小视频免费网站| 特级黄色录像片| 久久国产精品网| 日本特黄a级片| 成人黄色片免费| 热久久精品免费视频| 国产精品美女在线播放| 免费看国产曰批40分钟| 羞羞的视频在线| 欧美午夜小视频| 久久精品视频在线观看免费| 久久综合久久网| 欧美视频亚洲图片| 久久久一本二本三本| 亚洲一级片av| 黄色一级在线视频| 日韩视频在线观看视频| 人人干人人视频| 欧美午夜小视频| 九九九久久久久久久| 韩国日本在线视频| 亚洲中文字幕无码一区二区三区| av观看免费在线| 国产激情片在线观看| 三上悠亚在线一区二区| 免费一级特黄毛片| 亚洲高潮无码久久| 污污的视频免费| www.欧美日本| 国产美女三级视频| 欧美成人免费在线观看视频| 天堂网成人在线| 亚洲色图 在线视频| 精品欧美一区免费观看α√| www.18av.com| 久久久久久久免费视频| 午夜剧场在线免费观看| 男女无套免费视频网站动漫| 国产精品裸体瑜伽视频| 日韩精品一区二区三区四| 精品一区二区成人免费视频 | 毛片在线视频播放| 久久久久久www| 国产精品69久久久| 日本精品久久久久久久久久| 精品一区二区成人免费视频 |