JavaScript-numerot
- Edellinen sivu JS-merkkijonotemplaatit
- Seuraava sivu JS BigInt
JavaScriptilla on vain yksi lukutyypi.
Numeron kirjoittamisessa desimaalipiste voi olla mukana tai ei.
JavaScript luku
JavaScript numbers can be written with or without a decimal point:
Esimerkki
var x = 3.14; // A number with a decimal point var y = 3; // A number without a decimal point
Very large or very small numbers can be written in scientific notation:
Esimerkki
var x = 123e5; // 12300000 var y = 123e-5; // 0.00123
JavaScript numbers are always 64-bit floating-point numbers
Unlike many other programming languages, JavaScript does not define different types of numbers, such as integers, shorts, longs, floats, etc.
JavaScript numbers are always stored as double-precision floating-point numbers, according to the international IEEE 754 standard.
This format stores the number in 64 bits, where 0 to 51 store the digits (fraction), 52 to 62 store the exponent, and the 63rd bit stores the sign:
Value (also known as Fraction/Mantissa) | Exponent | Sign |
---|---|---|
52 bits(0 - 51) | 11 bits (52 - 62) | 1 bit (63) |
Precision
Integers (not using exponent or scientific notation) are rounded to 15 digits.
Esimerkki
var x = 999999999999999; // x will be 999999999999999 var y = 9999999999999999; // y will be 10000000000000000
The maximum number of decimal places is 17, but floating-point arithmetic is not always 100% accurate:
Esimerkki
var x = 0.2 + 0.1; // x will be 0.30000000000000004
Using multiplication and division helps to solve the above problem:
Esimerkki
var x = (0.2 * 10 + 0.1 * 10) / 10; // x will be 0.3
Adding a number and a string
Warning!!
JavaScript's addition and concatenation (concatenation) both use the + operator.
Numbers use addition. Strings use concatenation.
If you add two numbers, the result will be a number:
Esimerkki
var x = 10; var y = 20; var z = x + y; // z will be 30 (a number)
If you add two strings, the result will be a string concatenation:
Esimerkki
var x = "10"; var y = "20"; var z = x + y; // z 将是 1020(字符串)
If you add a number and a string, the result will be a string concatenation:
Esimerkki
var x = 10; var y = "20"; var z = x + y; // z will be 1020 (a string)
如果您对一个字符串和一个数字相加,结果也是字符串级联:
Esimerkki
var x = "10"; var y = 20; var z = x + y; // z 将是 1020(字符串)
常见的错误是认为结果应该是 30:
Esimerkki
var x = 10; var y = 20; var z = "The result is: " + x + y;
常见的错误是认为结果应该是 102030:
Esimerkki
var x = 10; var y = 20; var z = "30"; var result = x + y + z;
JavaScript 从左向右进行编译。
因为 x 和 y 都是数,10 + 20 将被相加。
因为 z 是字符串,30 + "30" 被级联。
数字字符串
JavaScript 字符串可以拥有数字内容:
var x = 100; // x 是数字 var y = "100"; // y 是字符串
在所有数字运算中,JavaScript 会尝试将字符串转换为数字:
该例如此运行:
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)
在最后一个例子中,JavaScript 用 + 运算符对字符串进行了级联。
NaN - Ei-numero
NaN
属于 JavaScript 保留词,指示某个数不是合法数。
尝试用一个非数字字符串进行除法会得到 NaN(Not a Number):
Esimerkki
var x = 100 / "Apple"; // x 将是 NaN(Not a Number)
不过,假如字符串包含数值,则结果将是数:
Esimerkki
var x = 100 / "10"; // x 将是 10
您可使用全局 JavaScript 函数 isNaN()
来确定某个值是否是数:
Esimerkki
var x = 100 / "Apple"; isNaN(x); // Palauttaa true, koska x ei ole luku
Ole varovainen NaN
。Jos käytät matemaattisissa laskuissa NaN
niin tuloksenkin tulee olemaan NaN
:
Esimerkki
var x = NaN; var y = 5; var z = x + y; // z tulee olemaan NaN
Tulos voi olla merkkijonkon yhdistelmä:
Esimerkki
var x = NaN; var y = "5"; var z = x + y; // z tulee olemaan NaN5
NaN
On luku:typeof NaN
Palauttaa number
:
Esimerkki
typeof NaN; // Palauttaa "number"
Infinity
Infinity
tai -Infinity
)on arvo, jonka JavaScript palauttaa, kun laskennassa ylitetään mahdollisimman suuri luku
Esimerkki
var myNumber = 2; while (myNumber != Infinity) { // Suoritetaan kunnes Infinity myNumber = myNumber * myNumber; }
Jakaminen nollalla (nolla) luo myös Infinity
:
Esimerkki
var x = 2 / 0; // x tulee olemaan Infinity var y = -2 / 0; // y tulee olemaan -Infinity
Infinity
On luku:typeOf Infinity
Palauttaa number
.
Esimerkki
typeof Infinity; // Palauttaa "number"
heksadesimaaliseksi
JavaScript muuntaa etuliitteen 0x
lukuja esitetään heksadesimaalina
Esimerkki
var x = 0xFF; // x tulee olemaan 255
Älä koskaan kirjoita numeroita johtuvilla nollilla (esim. 07)
Joissakin JavaScript-versioissa johtuvat nollat tulkitaan oktaaliksi.
Oletusarvon mukaan JavaScript näyttää luvut desimaalina
Mutta voit käyttää toString()
Metodi muuntaa luvun heksadesimaaliseksi, oktaaliseksi tai binääriseksi.
Esimerkki
var myNumber = 128; myNumber.toString(16); // Palauttaa 80 myNumber.toString(8); // Palauttaa 200 myNumber.toString(2); // Palauttaa 10000000
Luku voi olla objekti
Yleensä JavaScript-luvut luodaan suoraan lukuilla: var x = 123
但是也可以通过关键词 Älä luo arvoobjekteja. Tämä hidastaa suorituskykyä.
Mutta ne voidaan myös määrittää avainsanalla
Esimerkki
Määritetty objektina: var y = new Number(123) var x = 123; var y = new Number(123); // typeof x palauttaa number
// typeof y palauttaa object
Älä luo arvoobjekteja. Tämä hidastaa suorituskykyä.
new
// (x == y) on true, koska x ja y ovat yhtä arvoisia Avainsana monimutkaistaa koodia ja aiheuttaa joitakin odottamattomia tuloksia:
==
Esimerkki
var x = 500; var y = new Number(500); Samansuhtaisuuslauseke, yhtä arvoiset luvut näyttävät yhtä arvoisilta:
// (x == y) on true, koska x ja y ovat yhtä arvoisia ====
Kun käytetään ====
Operatorit vaativat sekä tyypin että arvon olevan yhtä.
Esimerkki
var x = 500; var y = new Number(500); // (x === y) on false, koska x ja y ovat eri tyyppiä
EVEN WORSE. Objektit eivät voi olla verrattavissa:
Esimerkki
var x = new Number(500); var y = new Number(500); // (x == y) on false, koska objektit eivät voi olla verrattavissa
JavaScript-objektit eivät voi olla vertailtavissa.
- Edellinen sivu JS-merkkijonotemplaatit
- Seuraava sivu JS BigInt