جاوا اسکریپت کا نُمبر

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 ਆਬਜੈਕਟ ਨੂੰ ਤੁਲਨਾ ਕੀਤੀ ਨਹੀਂ ਜਾ ਸਕਦੀ。