日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
盤點JavaScript中BigIn函數(shù)常見的屬性

大家好,我是進階學習者。

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的棗陽網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

一、概述

BigInt 是一種特殊的數(shù)字類型,它提供了對任意長度整數(shù)的支持。

創(chuàng)建 bigint 的方式有兩種:在一個整數(shù)字面量后面加 n 或者調(diào)用 BigInt 函數(shù),該函數(shù)從字符串、數(shù)字等中生成 bigint。

 
 
 
 
  1. const bigint = 1234567890123456789012345678901234567890n; 
  2. const sameBigint = BigInt("1234567890123456789012345678901234567890"); 
  3. const bigintFromNumber = BigInt(10); // 與 10n 相同 

二、屬性

1. 數(shù)學運算符

BigInt 大多數(shù)情況下可以像常規(guī)數(shù)字類型一樣使用。

例如:

 
 
 
 
  1. alert(1n + 2n); // 3 
  2. alert(5n / 2n); // 2 

注:

除法 5/2 的結(jié)果向零進行舍入,舍入后得到的結(jié)果沒有了小數(shù)部分。對 bigint 的所有操作,返回的結(jié)果也是 bigint。

不可以把 bigint 和常規(guī)數(shù)字類型混合使用:

 
 
 
 
  1. alert(1n + 2); // Error: Cannot mix BigInt and other types 

如果有需要,應該顯式地轉(zhuǎn)換它們:使用 BigInt() 或者 Number(),像這樣:

 
 
 
 
  1. let bigint = 1n; 
  2. let number = 2; 
  3. // 將 number 轉(zhuǎn)換為 bigint 
  4. alert(bigint + BigInt(number)); // 3 
  5. // 將 bigint 轉(zhuǎn)換為 number 
  6. alert(Number(bigint) + number); // 3 

轉(zhuǎn)換操作始終是靜默的,絕不會報錯,但是如果 bigint 太大而數(shù)字類型無法容納,則會截斷多余的位,因此應該謹慎進行此類轉(zhuǎn)換。

BigInt 不支持一元加法

一元加法運算符 +value,是大家熟知的將 value 轉(zhuǎn)換成數(shù)字類型的方法。

為了避免混淆,在 bigint 中不支持一元加法:

 
 
 
 
  1. let bigint = 1n; 
  2. alert( +bigint ); // error 

應該用 Number() 來將一個 bigint 轉(zhuǎn)換成一個數(shù)字類型。

2. 比較運算符

比較運算符,例如 < 和 >,使用它們來對 bigint 和 number 類型的數(shù)字進行比較沒有問題。

 
 
 
 
  1. alert( 2n > 1n ); // true 
  2. alert( 2n > 1 ); // true 

注:

由于 number 和 bigint 屬于不同類型,它們可能在進行 == 比較時相等,但在進行 ===(嚴格相等)比較時不相等:

 
 
 
 
  1. alert( 1 == 1n ); // true 
  2.  
  3. alert( 1 === 1n ); // false 

3. 布爾運算

當在 if 或其他布爾運算中時,bigint 的行為類似于 number。

例:

在 if 中,bigint 0n 為 false,其他值為 true:

 
 
 
 
  1. if (0n) {   
  2.   // 永遠不會執(zhí)行 

布爾運算符

例如 ||,&& 和其他運算符,處理 bigint 的方式也類似于 number:

 
 
 
 
  1. alert( 1n || 2 ); // 1(1n 被認為是 true) 
  2. alert( 0n || 2 ); // 2(0n 被認為是 false) 

注:

這個方法建議在寫代碼時使用 JSBI 替代原生的 bigint。但是 JSBI 在內(nèi)部像使用 bigint 一樣使用 number,并最大程度按照規(guī)范進行模擬,所以代碼已經(jīng)是準備好轉(zhuǎn)換成 bigint 的了(bigint-ready)。

對于不支持 bigint 的引擎,可以“按原樣”使用此類 JSBI 代碼,對于那些支持 bigint 的引擎 — polyfill 會將調(diào)用轉(zhuǎn)換為原生的 bigint。

三、總結(jié)

本文基于JavaScript基礎,介紹了 BigInt 函數(shù),常見的屬性,通過 BigInt 函數(shù)進行數(shù)字運算符的比較。布爾運算等等,通過按案例的分析進行詳細的講解。

歡迎大家積極嘗試,有時候看到別人實現(xiàn)起來很簡單,但是到自己動手實現(xiàn)的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。

代碼很簡單,希望對你學習有幫助。

本文轉(zhuǎn)載自微信公眾號「前端進階學習交流」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系前端進階學習交流公眾號。


網(wǎng)頁題目:盤點JavaScript中BigIn函數(shù)常見的屬性
文章分享:http://m.5511xx.com/article/ccojhcg.html