جاوا اسکریپت کا نُمبر
- ਪਿਛਲਾ ਪੰਨਾ JS ਸਟਰਿੰਗ ਟੈਮਪਲੇਟ
- ਅਗਲਾ ਪੰਨਾ JS BigInt
JavaScript ਵਿੱਚ ਇੱਕ ਹੀ ਸੰਖਿਆ ਪ੍ਰਕਾਰ ਹੈ。
ਸੰਖਿਆ ਲਿਖਣ ਦੇ ਸਮੇਂ ਛੋਟੀ ਦੀ ਪੰਕਟੇ ਲਗਾਉਣਾ ਜਾਂ ਨਹੀਂ ਲਗਾਉਣਾ ਵਿਚਾਰ ਕਰ ਸਕਦੇ ਹਨ。
JavaScript ਸੰਖਿਆ
JavaScript ਦੇ ਅੰਕ ਨੂੰ ਲਿਖਣ ਲਈ ਸਫੇਟ ਅਤੇ ਬੇਸ਼ਾਰਤ ਦੋਵੇਂ ਤਰ੍ਹਾਂ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ:
ਇੰਸਟੈਂਸ
var x = 3.14; // ਸਫੇਟ ਦਾ ਅੰਕ var y = 3; // ਬੇਸ਼ਾਰਤ ਸਫੇਟ ਦਾ ਅੰਕ
ਵੱਡੇ ਜਾਂ ਛੋਟੇ ਅੰਕਾਂ ਨੂੰ ਸਾਇੰਸ ਕੰਟਾਕਸ਼ਨ ਨਾਲ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ:
ਇੰਸਟੈਂਸ
var x = 123e5; // 12300000 var y = 123e-5; // 0.00123
JavaScript ਦੇ ਅੰਕ ਹਮੇਸ਼ਾ 64 ਬਿਟ ਫਲਾਈਟਿੰਗ ਪੁਆਇੰਟ ਹਨ
ਕਈ ਹੋਰ ਪ੍ਰੋਗਰਾਮਿੰਗ ਲਾਂਗਵੇਜਜ਼ ਤੋਂ ਅਲੱਗ, JavaScript ਵਿੱਚ ਅੰਕ ਦੇ ਵੱਖ-ਵੱਖ ਤਰ੍ਹਾਂ ਨਹੀਂ ਨਿਰਧਾਰਿਤ ਹੁੰਦੇ, ਜਿਵੇਂ ਕਿ ਪੂਰਣ ਸੰਖਿਆ, ਛੋਟੀ, ਲੰਮੀ, ਫਲਾਈਟਿੰਗ ਪੁਆਇੰਟ ਆਦਿ。
JavaScript ਦੇ ਅੰਕ ਹਮੇਸ਼ਾ ਡਬਲ ਪ੍ਰੈਸ਼ਨ ਫਲਾਈਟਿੰਗ ਪੁਆਇੰਟ ਵਿੱਚ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਅੰਤਰਰਾਸ਼ਟਰੀ IEEE 754 ਸਟੈਂਡਰਡ ਅਨੁਸਾਰ ਹਨ。
ਇਹ ਫਾਰਮੈਟ 64 ਬਿਟ ਵਿੱਚ ਅੰਕ ਸਟੋਰ ਕਰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ 0 ਤੋਂ 51 ਸਥਾਨ ਅੰਕ (ਫਰੈਗਮੈਂਟ) ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ 52 ਤੋਂ 62 ਸਥਾਨ ਇੰਡੈਕਸ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਅਤੇ 63 ਸਥਾਨ ਸਿੰਗਨ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ:
ਮੁੱਲ(ਅਜਿਹਾ ਕਿ ਫਰੈਕਸ਼ਨ/ਮੈਨਟੀਸਾ) | ਇੰਡੈਕਸ | ਸਿੰਗਨ |
---|---|---|
52 ਬਿਟ(0 - 51) | 11 ਬਿਟ (52 - 62) | 1 ਬਿਟ (63) |
ਸਹੀਤਾ
ਪੂਰਣ ਸੰਖਿਆ (ਸਕਾਈਲ ਜਾਂ ਸਾਇੰਸ ਕੰਟਾਕਸ਼ਨ ਦੇ ਬਿਨਾ) 15 ਸਥਾਨ ਤੱਕ ਸਹੀ ਹੁੰਦੀ ਹੈ。
ਇੰਸਟੈਂਸ
var x = 999999999999999; // x ਹੋਵੇਗਾ 999999999999999 var y = 9999999999999999; // y ਹੋਵੇਗਾ 10000000000000000
ਅੰਕੜੀ ਦਾ ਮਹੱਤਵਪੂਰਨ ਅੰਕ 17 ਸਥਾਨ ਤੱਕ ਹੁੰਦਾ ਹੈ ਪਰ ਫਲਾਈਟਿੰਗ ਪੁਆਇੰਟ ਦਾ ਗਣਨਾ ਹਮੇਸ਼ਾ 100% ਸਹੀ ਨਹੀਂ ਹੁੰਦਾ:
ਇੰਸਟੈਂਸ
var x = 0.2 + 0.1; // x ਹੋਵੇਗਾ 0.30000000000000004
ਉੱਪਰ ਦੇ ਪ੍ਰਸਨਨ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਗਣਨਾ ਵਰਤੋਂ ਕਰੋ:
ਇੰਸਟੈਂਸ
var x = (0.2 * 10 + 0.1 * 10) / 10; // x ਹੋਵੇਗਾ 0.3
ਸੰਖਿਆ ਅਤੇ ਸਟ੍ਰਿੰਗ ਨੂੰ ਜੋੜਨਾ
ਚੇਤਾਵਨੀ !!
JavaScript ਦੇ ਜੋੜ ਅਤੇ ਜੋੜ ਮੁੱਲ ਵਰਤੋਂ ਕਰਦੇ ਹਨ + ਆਪਰੇਟਰ。
ਸੰਖਿਆਵਾਂ ਨੂੰ ਜੋੜਨ ਲਈ ਜੋੜ ਮੁੱਲ ਵਰਤੋਂ ਕਰੋ। ਸਟ੍ਰਿੰਗ ਜੋੜੇ ਹੋਣ ਲਈ ਜੋੜ ਮੁੱਲ ਵਰਤੋਂ ਕਰੋ。
ਤੁਸੀਂ ਦੋ ਸੰਖਿਆਵਾਂ ਨੂੰ ਜੋੜੋ ਤਾਂ ਨਤੀਜਾ ਇੱਕ ਸੰਖਿਆ ਹੋਵੇਗਾ:
ਇੰਸਟੈਂਸ
var x = 10; var y = 20; var z = x + y; // z ਹੋਵੇਗਾ 30 (ਇੱਕ ਸੰਖਿਆ)
ਦੋ ਸਟ੍ਰਿੰਗ ਨੂੰ ਜੋੜੋ ਤਾਂ ਨਤੀਜਾ ਇੱਕ ਸਟ੍ਰਿੰਗ ਜੋੜੇ ਹੋਵੇਗਾ:
ਇੰਸਟੈਂਸ
var x = "10"; var y = "20"; var z = x + y; // z ਹੋਵੇਗਾ 1020 (ਸਟਰਿੰਗ)
ਤੁਸੀਂ ਇੱਕ ਸੰਖਿਆ ਅਤੇ ਸਟ੍ਰਿੰਗ ਨੂੰ ਜੋੜੋ ਤਾਂ ਨਤੀਜਾ ਵੀ ਸਟ੍ਰਿੰਗ ਜੋੜੇ ਹੋਵੇਗਾ:
ਇੰਸਟੈਂਸ
var x = 10; var y = "20"; var z = x + y; // z ਹੋਵੇਗਾ 1020 (ਇੱਕ ਸਟ੍ਰਿੰਗ)
ਤੁਸੀਂ ਇੱਕ ਸਟਰਿੰਗ ਅਤੇ ਨੰਬਰ ਨੂੰ ਜੋੜੇ ਹੋਏ ਨਤੀਜਾ ਸਟਰਿੰਗ ਜੋੜੇ ਜਾਣਗੇ:
ਇੰਸਟੈਂਸ
var x = "10"; var y = 20; var z = x + y; // z ਹੋਵੇਗਾ 1020 (ਸਟਰਿੰਗ)
ਸਭ ਤੋਂ ਆਮ ਗਲਤੀ ਇਹ ਮੰਨਣਾ ਹੈ ਕਿ ਨਤੀਜਾ 30 ਹੋਵੇਗਾ:
ਇੰਸਟੈਂਸ
var x = 10; var y = 20; var z = "The result is: " + x + y;
ਸਭ ਤੋਂ ਆਮ ਗਲਤੀ ਇਹ ਮੰਨਣਾ ਹੈ ਕਿ ਨਤੀਜਾ 102030 ਹੋਵੇਗਾ:
ਇੰਸਟੈਂਸ
var x = 10; var y = 20; var z = "30"; var result = x + y + z;
ਜਾਵਾਸਕ੍ਰਿਪਟ ਵੱਲੋਂ ਸੱਦੇ ਤੋਂ ਸੱਦੇ ਤੱਕ ਕੋਡ ਪਾਠ ਦੇ ਵਿੱਚ ਕੋਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ。
ਕਿਉਂਕਿ x ਅਤੇ y ਦੋਵੇਂ ਨੰਬਰ ਹਨ, 10 + 20 ਜੋੜੇ ਜਾਣਗੇ。
ਕਿਉਂਕਿ z ਸਟਰਿੰਗ ਹੈ, 30 + "30" ਜੋੜੇ ਜਾਣਗੇ。
ਨੰਬਰ ਸਟਰਿੰਗ
ਜਾਵਾਸਕ੍ਰਿਪਟ ਸਟਰਿੰਗ ਵਿੱਚ ਨੰਬਰ ਹੋ ਸਕਦੇ ਹਨ:
var x = 100; // x ਨੰਬਰ ਹੈ var y = "100"; // y ਸਟਰਿੰਗ ਹੈ
ਸਾਰੇ ਨੰਬਰ ਗਣਨਾ ਵਿੱਚ, ਜਾਵਾਸਕ੍ਰਿਪਟ ਸਟਰਿੰਗ ਨੂੰ ਨੰਬਰ ਵਿੱਚ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੇਗਾ:
ਇਹ ਉਦਾਹਰਣ ਇਸ ਤਰ੍ਹਾਂ ਚਲੇਗਾ:
var x = "100"; var y = "10"; var z = x / y; // z ਹੋਵੇਗਾ 10
ਇਹ ਉਦਾਹਰਣ ਇਸ ਤਰ੍ਹਾਂ ਹੀ ਚਲੇਗਾ:
var x = "100"; var y = "10"; var z = x * y; // z ਹੋਵੇਗਾ 1000
ਇਹ ਉਦਾਹਰਣ ਇਸ ਤਰ੍ਹਾਂ ਚਲੇਗਾ:
var x = "100"; var y = "10"; var z = x - y; // z ਹੋਵੇਗਾ 90
ਪਰ ਇਹ ਉਦਾਹਰਣ ਉਸ ਤਰ੍ਹਾਂ ਨਹੀਂ ਚਲੇਗਾ:
var x = "100"; var y = "10"; var z = x + y; // z ਨਾਂਬਰ ਨਹੀਂ ਹੋਵੇਗਾ 110 (ਸਗੋਂ 10010)
ਆਖਰੀ ਉਦਾਹਰਣ ਵਿੱਚ, ਜਾਵਾਸਕ੍ਰਿਪਟ ਨੇ + ਆਪਰੇਟਰ ਦੇ ਵੱਲੋਂ ਸਟਰਿੰਗ ਨੂੰ ਜੋੜਿਆ ਹੈ。
NaN - ਗ਼ੈਰ ਨੰਬਰ
NaN
ਜਾਵਾਸਕ੍ਰਿਪਟ ਦੇ ਸੰਭਾਲੇ ਸ਼ਬਦ ਹਨ, ਜੋ ਕਿ ਕੋਈ ਨੰਬਰ ਨਹੀਂ ਹੈ ਨੂੰ ਸੂਚਿਤ ਕਰਦੇ ਹਨ。
ਇੱਕ ਗ਼ੈਰ ਨੰਬਰ ਸਟਰਿੰਗ ਦੇ ਵੱਲੋਂ ਵਿਭਾਜਨ ਕਰਨ ਨਾਲ NaN (Not a Number) ਮਿਲੇਗਾ:
ਇੰਸਟੈਂਸ
var x = 100 / "Apple"; // x ਹੋਵੇਗਾ NaN (Not a Number)
ਪਰ ਜੇਕਰ ਸਟਰਿੰਗ ਵਿੱਚ ਨੰਬਰ ਹੈ ਤਾਂ ਨਤੀਜਾ ਨਾਂਬਰ ਹੋਵੇਗਾ:
ਇੰਸਟੈਂਸ
var x = 100 / "10"; // x ਹੋਵੇਗਾ 10
ਤੁਸੀਂ ਵਿਸ਼ਵ ਜਾਵਾਸਕ੍ਰਿਪਟ ਫੰਕਸ਼ਨ ਦਾ ਉਪਯੋਗ ਕਰ ਸਕਦੇ ਹੋ isNaN()
ਕੀਤੇ ਹੋਏ ਕੋਈ ਮੁੱਲ ਨਾਂਬਰ ਹੈ ਜਾਂ ਨਹੀਂ ਦੇ ਸਵਾਲ ਦੇ ਲਈ:
ਇੰਸਟੈਂਸ
var x = 100 / "Apple"; isNaN(x); // ਰਾਹੀਂ ਚੈੱਕ ਕਰੋ ਕਿ x ਨਾਂਬਰ ਹੈ ਜਾਂ ਨਹੀਂ
要小心 NaN
。假如您在数学运算中使用了 NaN
,则结果也将是 NaN
:
ਇੰਸਟੈਂਸ
var x = NaN; var y = 5; var z = x + y; // z 将是 NaN
结果也许是串连接:
ਇੰਸਟੈਂਸ
var x = NaN; var y = "5"; var z = x + y; // z 将是 NaN5
NaN
是数,typeof NaN
返回 number
:
ਇੰਸਟੈਂਸ
typeof NaN; // 返回 "number"
Infinity
Infinity
(或 -Infinity
)是 JavaScript 在计算数时超出最大可能数范围时返回的值。
ਇੰਸਟੈਂਸ
var myNumber = 2; while (myNumber != Infinity) { // 执行直到 Infinity myNumber = myNumber * myNumber; }
除以 0(零)也会生成 Infinity
:
ਇੰਸਟੈਂਸ
var x = 2 / 0; // x 将是 Infinity var y = -2 / 0; // y 将是 -Infinity
Infinity
是数:typeOf Infinity
返回 number
。
ਇੰਸਟੈਂਸ
typeof Infinity; // 返回 "number"
十六进制
JavaScript 会把前缀为 0x
的数值常量解释为十六进制。
ਇੰਸਟੈਂਸ
var x = 0xFF; // x 将是 255。
绝不要用前导零写数字(比如 07)。
一些 JavaScript 版本会把带有前导零的数解释为八进制。
默认地,Javascript 把数显示为十进制小数。
但是您能够使用 toString()
方法把数输出为十六进制、八进制或二进制。
ਇੰਸਟੈਂਸ
var myNumber = 128; myNumber.toString(16); // 返回 80 myNumber.toString(8); // 返回 200 myNumber.toString(2); // 返回 10000000
数值可以是对象
ਆਮ ਤੌਰ 'ਤੇ JavaScript ਨੂੰਮਰ ਕ੍ਰਮਵਾਰ ਬਣਾਉਣ ਵਾਲੇ ਮੂਲ ਮੁੱਲ ਦੇ ਰੂਪ 'ਚ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ: var x = 123
但是也可以通过关键词 new
定义为对象:var y = new Number(123)
ਇੰਸਟੈਂਸ
var x = 123; var y = new Number(123); // typeof x 返回 number // typeof y 返回 object
请不要创建数值对象。这样会拖慢执行速度。
new
关键词使代码复杂化,并产生某些无法预料的结果:
ਜਦੋਂ ਇਸ ਤਰ੍ਹਾਂ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ==
ਸਮਾਨ ਆਪਸੀ ਆਕਾਰ ਦੇ ਬਾਅਦ ਸਮਾਨ ਸੰਖਿਆ ਦੇ ਦਿਸਦੇ ਹਨ:
ਇੰਸਟੈਂਸ
var x = 500; var y = new Number(500); // (x == y) ਸਹੀ ਹੈ, ਕਿਉਂਕਿ x ਅਤੇ y ਦੇ ਮੁੱਲ ਸਮਾਨ ਹਨ
ਜਦੋਂ ਇਸ ਤਰ੍ਹਾਂ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ===
ਸਮਾਨ ਆਪਸੀ ਆਕਾਰ ਦੇ ਬਾਅਦ ਸਮਾਨ ਸੰਖਿਆ ਨੂੰ ਅਸਮਾਨ ਬਣਾ ਦਿੰਦਾ ਹੈ ਕਿਉਂਕਿ ===
ਆਪਸੀ ਆਕਾਰ ਅਤੇ ਮੁੱਲ ਦੋਵੇਂ ਸਮਾਨ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ
ਇੰਸਟੈਂਸ
var x = 500; var y = new Number(500); // (x === y) ਮਿਟਾ ਹੈ, ਕਿਉਂਕਿ x ਅਤੇ y ਦੇ ਪ੍ਰਕਾਰ ਅਲੱਗ ਹਨ
ਸਭ ਤੋਂ ਬਦਕਿਸਮਤ ਹੈ।ਆਬਜੈਕਟ ਨੂੰ ਤੁਲਨਾ ਕੀਤੀ ਨਹੀਂ ਜਾ ਸਕਦੀ:
ਇੰਸਟੈਂਸ
var x = new Number(500); var y = new Number(500); // (x == y) ਮਿਟਾ ਹੈ, ਕਿਉਂਕਿ ਆਬਜੈਕਟ ਨੂੰ ਤੁਲਨਾ ਕੀਤੀ ਨਹੀਂ ਜਾ ਸਕਦੀ
JavaScript ਆਬਜੈਕਟ ਨੂੰ ਤੁਲਨਾ ਕੀਤੀ ਨਹੀਂ ਜਾ ਸਕਦੀ。
- ਪਿਛਲਾ ਪੰਨਾ JS ਸਟਰਿੰਗ ਟੈਮਪਲੇਟ
- ਅਗਲਾ ਪੰਨਾ JS BigInt