Baseline Widely available
Number
å¼è¡¨ç¤ºå 37
æ -9.25
è¿æ ·çæµ®ç¹æ°ã
Number
æé 彿°å
å«å¸¸éåå¤çæ°å¼çæ¹æ³ãå
¶ä»ç±»åçå¼å¯ä»¥ä½¿ç¨ Number()
彿°è½¬æ¢ä¸ºæ°åã
æ°å¼é常以åé¢éå½¢å¼è¡¨ç¤ºãå¦ 255
æ 3.14159
ãè¯æ³è¯æ³å
嫿´è¯¦ç»çåèã
255; // äºç¾äºåäº
255.0; // ç¸åçæ°å
255 === 255.0; // true
255 === 0xff; // trueï¼åå
è¿å¶è¡¨ç¤ºï¼
255 === 0b11111111; // trueï¼äºè¿å¶è¡¨ç¤ºï¼
255 === 0.255e3; // trueï¼åè¿å¶ææ°è®°æ°æ³ï¼
å¨ JavaScript 代ç ä¸ï¼å 37
è¿æ ·çæ°ååé¢éæ¯æµ®ç¹æ°å¼ï¼è䏿¯æ´æ°ãå¨å¸¸è§çæ¥å¸¸ä½¿ç¨ä¸ï¼JavaScript 没æåç¬çæ´æ°ç±»åãï¼JavaScript è¿æä¸ä¸ª BigInt
ç±»åï¼ä½å®å¹¶ä¸æ¯ä¸ºäºå代 Number è设计çï¼37
ä»ç¶æ¯ä¸ä¸ªæ°åï¼è䏿¯ä¸ä¸ª BigIntãï¼
å½ä½ä¸ºä¸ä¸ªå½æ°ä½¿ç¨æ¶ï¼Number(value)
å°å符串æè
å
¶ä»å¼è½¬æ¢å° Number ç±»åãå¦æè¯¥å¼ä¸è½è¢«è½¬æ¢ï¼å®ä¼è¿å NaN
ã
Number("123"); // è¿åæ°å 123
Number("123") === 123; // true
Number("unicorn"); // NaN
Number(undefined); // NaN
Number ç¼ç
JavaScript ç Number
ç±»åæ¯ä¸ä¸ªå精度 64 ä½äºè¿å¶æ ¼å¼ IEEE 754 å¼ï¼ç±»ä¼¼äº Java æè
C# ä¸ç double
ãè¿æå³çå®å¯ä»¥è¡¨ç¤ºå°æ°å¼ï¼ä½æ¯åå¨çæ°åç大å°å精度æä¸äºéå¶ãç®èè¨ä¹ï¼IEEE 754 åç²¾åº¦æµ®ç¹æ°ä½¿ç¨ 64 使¥è¡¨ç¤º 3 个é¨åï¼
å°¾æ°ï¼ä¹ç§°ä¸ºæææ°ï¼æ¯è¡¨ç¤ºå®é å¼ï¼æææ°åï¼çæ°å¼é¨åãææ°æ¯å°¾æ°åºä¹ä»¥ç 2 ç广¬¡ãå°å ¶è§ä¸ºç§å¦è®¡æ°æ³ï¼
Number = ( â 1 )sign â ( 1 + mantissa ) â 2exponent \text{Number} = ({-1})^{\text{sign}} \cdot (1 + \text{mantissa}) \cdot 2^{\text{exponent}}å°¾æ°ä½¿ç¨ 52 æ¯ç¹åå¨ï¼å¨äºè¿å¶å°æ°ä¸è§£é为 1.â¦
ä¹åçæ°åãå æ¤ï¼å°¾æ°çç²¾åº¦æ¯ 2-52ï¼å¯ä»¥éè¿ Number.EPSILON
è·å¾ï¼ï¼æè
åè¿å¶æ°å°æ°ç¹å大约 15 å° 17 ä½ï¼è¶
è¿è¿ä¸ªç²¾åº¦çç®æ¯ä¼åå°èå
¥çå½±åã
ä¸ä¸ªæ°å¼å¯ä»¥å®¹çº³çæå¤§å¼æ¯ 21024 - 1ï¼ææ°ä¸º 1023ï¼å°¾æ°ä¸ºåºäºäºè¿å¶ç 0.1111â¦ï¼ï¼å¯ä»¥éè¿ Number.MAX_VALUE
è·å¾ãè¶
è¿è¿ä¸ªå¼çæ°ä¼è¢«æ¿æ¢ä¸ºç¹æ®çæ°å¼å¸¸é Infinity
ã
åªæå¨ -253 + 1 å° 253 - 1 èå´å
ï¼éåºé´ï¼çæ´æ°æè½å¨ä¸ä¸¢å¤±ç²¾åº¦çæ
åµä¸è¢«è¡¨ç¤ºï¼å¯éè¿ Number.MIN_SAFE_INTEGER
å Number.MAX_SAFE_INTEGER
è·å¾ï¼ï¼å 为尾æ°åªè½å®¹çº³ 53 ä½ï¼å
æ¬å导 1ï¼ã
æå ³è¿é¨ä»½çæ´å¤è¯¦ç»ä¿¡æ¯ï¼è¯·åé ECMAScript æ åã
Number 强å¶è½¬æ¢è®¸å¤æææ°å¼çå
ç½®æä½é¦å
å°å
¶åæ°è½¬æ¢ä¸ºæ°åï¼è¿å¨å¾å¤§ç¨åº¦ä¸è§£éäºä¸ºä»ä¹ Number
对象çè¡ä¸ºç±»ä¼¼äºæ°ååå§å¼ï¼ã该æä½å¯ä»¥æ»ç»å¦ä¸ï¼
undefined
转æ¢ä¸º NaN
ãnull
转æ¢ä¸º 0
ãtrue
转æ¢ä¸º 1
ï¼false
转æ¢ä¸º 0
ãNaN
ãä¸å®é
æ°ååé¢éç¸æ¯ï¼å®ä»¬æä¸äºç»å¾®çå·®å«ï¼
0
ä¸ä¼å¯¼è´è¯¥æ°å¼æä¸ºå
«è¿å¶åé¢éï¼æå¨ä¸¥æ ¼æ¨¡å¼ä¸è¢«æç»ï¼ã+
å -
å
许åºç°å¨å符串çå¼å¤´ä»¥æç¤ºå
¶ç¬¦å·ãï¼å¨å®é
代ç ä¸ï¼å®ä»¬âçèµ·æ¥åâæåçä¸é¨åï¼ä½å®é
䏿¯ç¬ç«çä¸å
è¿ç®ç¬¦ãï¼ç¶èï¼è¯¥æ å¿åªè½åºç°ä¸æ¬¡ï¼å¹¶ä¸åé¢ä¸è½è·ç©ºæ ¼ãInfinity
å -Infinity
被å½ä½æ¯åé¢éãå¨å®é
代ç ä¸ï¼å®ä»¬æ¯å
¨å±åéã0
ãTypeError
ï¼ä»¥é²æ¢æå¤ç强å¶éå¼è½¬æ¢å¯¼è´ç²¾åº¦æå¤±ãTypeError
ã[Symbol.toPrimitive]()
ï¼ä½¿ç¨ "number"
æç¤ºï¼ãvalueOf()
å toString()
æ¹æ³å°å
¶è½¬æ¢ä¸ºåå§å¼ãç¶åå°å¾å°çåå§å¼è½¬æ¢ä¸ºæ°åãæä¸¤ç§æ¹æ³å¯ä»¥å¨ JavaScript ä¸å®ç°å ä¹ç¸åçææã
+x
å®å
¨æç
§ä¸é¢çæ°å¼å¼ºå¶è½¬æ¢æ¥éª¤æ¥è½¬æ¢ x
ãNumber()
彿°ï¼Number(x)
使ç¨ç¸åçç®æ³è½¬æ¢ x
ï¼é¤äº BigInt ä¸ä¼æåº TypeError
ï¼èæ¯è¿åå
¶æ°åå¼ï¼å¹¶ä¸å¯è½å¯¼è´ç²¾åº¦æå¤±ãNumber.parseFloat()
å Number.parseInt()
ä¸ Number()
ç¸ä¼¼ï¼ä½åªè½è½¬æ¢å符串ï¼å¹¶ä¸è§£æè§åç¥æä¸åãä¾å¦ï¼parseInt()
æ æ³è¯å«å°æ°ç¹ï¼parseFloat()
æ æ³è¯å« 0x
åç¼ã
æäºæä½éè¦æ´æ°ä½ä¸ºåæ°ï¼å°¤å
¶æ¯é£äºä¸æ°ç»/å符串索å¼ãæ¥æ/æ¶é´ç»ä»¶åæ°åè¿å¶ç¸å
³çæä½ã卿§è¡ä¸è¿°æ°å¼å¼ºå¶è½¬æ¢æ¥éª¤åï¼ç»æå°è¢«æªæä¸ºæ´æ°ï¼å³èå¼å°æ°é¨ä»½ï¼ã妿æ°å¼ä¸º ±Infinityï¼åæåæ ·è¿åã妿æ°å¼æ¯ NaN
æ -0
ï¼åè¿å为 0
ãå æ¤ï¼ç»ææ»æ¯æ´æ°ï¼ä¸å
æ¬ -0
ï¼æ ±Infinityã
å¼å¾æ³¨æçæ¯ï¼å½è½¬æ¢å°æ´æ°æ¶ï¼undefined
å null
é½ä¼åæ 0
ï¼å 为 undefined
被转æ¢ä¸º NaN
ï¼NaN
ä¹åæäº 0
ã
JavaScript æä¸äºè¾ä½çº§å«ç彿°ï¼ç¨äºå¤çæ´æ°çäºè¿å¶ç¼ç ï¼æå¼å¾æ³¨æçæ¯æä½è¿ç®å TypedArray
对象ãæä½è¿ç®æ»æ¯å°æä½æ°è½¬æ¢ä¸º 32 使´æ°ãå¨è¿äºæ
åµä¸ï¼å°å¼è½¬æ¢ä¸ºæ°ååï¼æ°åå°é¦å
æªæå°æ°é¨åï¼ç¶åååæ´æ°çäºè¿å¶çè¡¥ç ç¼ç ä¸çæä½å 使¥å°æ°å¼æ åå为ç»å®ç宽度ã
new Int32Array([1.1, 1.9, -1.1, -1.9]); // Int32Array(4) [ 1, 1, -1, -1 ]
new Int8Array([257, -257]); // Int8Array(2) [ 1, -1 ]
// 257 = 0001 0000 0001
// = 0000 0001ï¼æ¨¡ 2^8ï¼
// = 1
// -257 = 1110 1111 1111
// = 1111 1111ï¼æ¨¡ 2^8ï¼
// = -1ï¼å¸¦ç¬¦å·æ´æ°ï¼
new Uint8Array([257, -257]); // Uint8Array(2) [ 1, 255 ]
// -257 = 1110 1111 1111
// = 1111 1111ï¼æ¨¡ 2^8ï¼
// = 255ï¼æ ç¬¦å·æ´æ°ï¼
æé 彿°
Number()
å建ä¸ä¸ªæ°ç Number
å¼ã
å½ Number
ä½ä¸ºä¸ä¸ªæé 彿°ï¼ç¨ new
ï¼è¢«è°ç¨æ¶ï¼å®ä¼å建ä¸ä¸ª Number
对象ï¼è¯¥å¯¹è±¡ä¸æ¯ä¸ä¸ªåå§å¼ãä¾å¦ï¼typeof new Number(42) === "object"
ï¼å¹¶ä¸ new Number(42) !== 42
ï¼å°½ç®¡ new Number(42) == 42
ï¼ã
è¦åï¼ ä½ åºè¯¥å¾å°åç°èªå·±å° Number
ä½ä¸ºæé 彿°ä½¿ç¨ã
Number.EPSILON
两个å¯è¡¨ç¤ºæ°ä¹é´çæå°é´éã
Number.MAX_SAFE_INTEGER
JavaScript 䏿大çå®å ¨æ´æ°ï¼253 - 1ï¼ã
Number.MAX_VALUE
è½è¡¨ç¤ºçæå¤§æ£æ°ã
Number.MIN_SAFE_INTEGER
JavaScript 䏿å°çå®å ¨æ´æ°ï¼-(253 - 1)ï¼ã
Number.MIN_VALUE
è½è¡¨ç¤ºçæå°æ£æ°å³ææ¥è¿ 0 çæ£æ°ï¼å®é ä¸ä¸ä¼åæ 0ï¼ã
Number.NaN
ç¹æ®çâNot a Numberâï¼éæ°åï¼å¼ã
Number.NEGATIVE_INFINITY
ç¹æ®çè´æ 穷大å¼ï¼å¨æº¢åºæ¶è¿å该å¼ã
Number.POSITIVE_INFINITY
ç¹æ®çæ£æ 穷大å¼ï¼å¨æº¢åºæ¶è¿å该å¼ã
Number.isFinite()
å¤æä¼ å ¥ç弿¯å¦æ¯æéæ°ã
Number.isInteger()
å¤æä¼ å ¥ç弿¯å¦ä¸ºæ´æ°
Number.isNaN()
å¤æä¼ å
¥ç弿¯å¦ä¸º NaN
ã
Number.isSafeInteger()
å¤æä¼ å ¥ç弿¯å¦ä¸ºå®å ¨æ´æ°ï¼æ°å¼å¨ -(253 - 1) å° 253 - 1 ä¹é´ï¼ã
Number.parseFloat()
åå
¨å±å½æ° parseFloat()
ç¸åã
Number.parseInt()
åå
¨å±å½æ° parseInt()
ç¸åã
è¿äºå±æ§æ¯å¨ Number.prototype
ä¸å®ä¹çï¼å¹¶ç±ææ Number
å®ä¾å
±äº«ã
Number.prototype.constructor
å建å®ä¾å¯¹è±¡çæé 彿°ãå¯¹äº Number
å®ä¾ï¼åå§å¼ä¸º Number
æé 彿°ã
Number.prototype.toExponential()
è¿åä½¿ç¨ææ°è¡¨ç¤ºæ³è¡¨ç¤ºæ°å¼çå符串ã
Number.prototype.toFixed()
è¿å使ç¨å®ç¹è¡¨ç¤ºæ³è¡¨ç¤ºæ°å¼çå符串ã
Number.prototype.toLocaleString()
è¿åæ°å¼å¨ç¹å®è¯è¨ç¯å¢ä¸è¡¨ç¤ºçå符串ãéåäº Object.prototype.toLocaleString()
æ¹æ³ã
Number.prototype.toPrecision()
è¿åæ°å¼ä½¿ç¨å®ç¹è¡¨ç¤ºæ³æææ°è¡¨ç¤ºæ³è³æå®ç²¾åº¦çå符串ã
Number.prototype.toString()
è¿åä¸ä¸ªä»£è¡¨ç»å®å¯¹è±¡çå符串ï¼åºäºæå®çåºæ°ï¼radixï¼ãéåäº Object.prototype.toString()
æ¹æ³ã
Number.prototype.valueOf()
è¿åæå®å¯¹è±¡çåå§å¼ãéåäº Object.prototype.valueOf()
æ¹æ³ã
ä¸ä¾ä½¿ç¨ Number
对象ç屿§ç»å 个æ°ååéèµå¼ï¼
const biggestNum = Number.MAX_VALUE;
const smallestNum = Number.MIN_VALUE;
const infiniteNum = Number.POSITIVE_INFINITY;
const negInfiniteNum = Number.NEGATIVE_INFINITY;
const notANum = Number.NaN;
æ´æ°ç±»åçèå´
以ä¸ç¤ºä¾æ¾ç¤ºäºå¯ä»¥è¡¨ç¤ºä¸º Number
对象çæå°åæå¤§æ´æ°å¼ã
const biggestInt = Number.MAX_SAFE_INTEGER; // (2**53 - 1) => 9007199254740991
const smallestInt = Number.MIN_SAFE_INTEGER; // -(2**53 - 1) => -9007199254740991
å½è§£æå·²åºåå为 JSON çæ°æ®æ¶ï¼å¦æ JSON è§£æå¨å°å®ä»¬å¼ºå¶ä¸º Number
ç±»åï¼è¶
åºæ¤èå´çæ´æ°å¼å¯è½ä¼è¢«æåã
ä¸ä¸ªå¯è½çåéåæ³æ¯ä½¿ç¨ String
ã
è¾å¤§çæ°å¼å¯ä»¥ä½¿ç¨ BigInt
ç±»å表示ã
以ä¸ç¤ºä¾ä½¿ç¨ Number
ä½ä¸ºå½æ°å° Date
对象转æ¢ä¸ºæ°å¼ï¼
const d = new Date("December 17, 1995 03:24:00");
console.log(Number(d));
è¿å°è¾åº 819199440000
ã
Number("123"); // 123
Number("123") === 123; // true
Number("12.3"); // 12.3
Number("12.00"); // 12
Number("123e-1"); // 12.3
Number(""); // 0
Number(null); // 0
Number("0x11"); // 17
Number("0b11"); // 3
Number("0o11"); // 9
Number("foo"); // NaN
Number("100a"); // NaN
Number("-Infinity"); // -Infinity
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4