JS กวดวิชา

เจเอสโฮม JS Introduction JS Where To JS เอาท์พุต งบ JS JS ไวยากรณ์ JS ความคิดเห็น ตัวแปร JS เจเอส เลท JS Const JS Operators JS เลขคณิต JS Assignment ประเภทข้อมูล JS ฟังก์ชัน JS วัตถุ JS JS Events JS Strings JS String Methods JS String Search เทมเพลตสตริง JS JS Numbers JS Number Methods JS Arrays JS Array Methods JS Array Sort JS Array Iteration JS Array Const JS Dates รูปแบบวันที่ JS JS วันที่รับเมธอด JS Date Set Methods JS Math JS สุ่ม JS Booleans JS เปรียบเทียบ JS Conditions JS Switch JS ลูปสำหรับ JS Loop สำหรับ In JS วนสำหรับ Of JS วนรอบในขณะที่ JS Break JS Iterables JS ชุด JS Maps JS Typeof JS ประเภทการแปลง JS Bitwise JS RegExp JS Errors JS ขอบเขต JS Hoisting JS โหมดเข้มงวด JS คำสำคัญนี้ JS Arrow Function JS Classes JS JSON JS Debugging คู่มือสไตล์ JS JS แนวทางปฏิบัติที่ดีที่สุด JS ความผิดพลาด JS Performance JS สงวนคำ

เวอร์ชัน JS

เวอร์ชัน JS JS 2009 (ES5) เจเอส 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / ขอบ JS History

วัตถุ JS

คำจำกัดความของวัตถุ คุณสมบัติของวัตถุ วิธีการวัตถุ การแสดงวัตถุ อุปกรณ์เสริมวัตถุ ตัวสร้างวัตถุ ต้นแบบวัตถุ วัตถุ Iterables ชุดวัตถุ แผนที่วัตถุ การอ้างอิงวัตถุ

ฟังก์ชัน JS

คำจำกัดความของฟังก์ชัน พารามิเตอร์ฟังก์ชัน เรียกใช้ฟังก์ชัน เรียกฟังก์ชัน ฟังก์ชัน สมัคร การปิดฟังก์ชัน

JS Classes

แนะนำคลาส การสืบทอดคลาส คลาสคงที่

JS Async

JS Callbacks JS แบบอะซิงโครนัส JS Promises JS Async/รอ

JS HTML DOM

บทนำ DOM วิธี DOM เอกสาร DOM องค์ประกอบ DOM DOM HTML แบบฟอร์ม DOM DOM CSS ภาพเคลื่อนไหว DOM กิจกรรม DOM DOM Event Listener การนำทาง DOM โหนด DOM DOM Collections รายการโหนด DOM

JS เบราว์เซอร์ BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS Web APIs

แนะนำ Web API เว็บฟอร์ม API API ประวัติเว็บ API ที่เก็บข้อมูลเว็บ Web Worker API API ดึงเว็บ เว็บ Geolocation API

JS AJAX

บทนำ AJAX AJAX XMLHttp คำขอ AJAX การตอบสนอง AJAX ไฟล์ AJAX XML AJAX PHP AJAX ASP ฐานข้อมูล AJAX แอปพลิเคชัน AJAX ตัวอย่าง AJAX

JS JSON

บทนำ JSON ไวยากรณ์ JSON JSON กับ XML ประเภทข้อมูล JSON JSON Parse JSON สตริงริฟาย วัตถุ JSON อาร์เรย์ JSON เซิร์ฟเวอร์ JSON JSON PHP JSON HTML JSON JSONP

JS กับ jQuery

ตัวเลือก jQuery jQuery HTML jQuery CSS jQuery DOM

JS กราฟิก

JS กราฟิก JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

ตัวอย่าง JS

ตัวอย่าง JS JS HTML DOM JS HTML อินพุต JS HTML Objects JS HTML Events JS Browser JS Editor JS แบบฝึกหัด JS Quiz ใบรับรอง JS

JS References

วัตถุ JavaScript วัตถุ HTML DOM


ตัวเลขจาวาสคริปต์


JavaScript มีตัวเลขเพียงประเภทเดียวเท่านั้น สามารถเขียนตัวเลขโดยมีหรือไม่มีทศนิยมก็ได้


ตัวอย่าง

let x = 3.14;    // A number with decimals
let y = 3;       // A number without decimals

สามารถเขียนตัวเลขขนาดใหญ่พิเศษหรือเล็กพิเศษด้วยสัญกรณ์วิทยาศาสตร์ (เลขชี้กำลัง):

ตัวอย่าง

let x = 123e5;    // 12300000
let y = 123e-5;   // 0.00123


หมายเลข JavaScript เป็นจุดลอยตัว 64 บิตเสมอ

JavaScript ไม่ได้กำหนดประเภทของตัวเลขต่างจากภาษาโปรแกรมอื่นๆ มากมาย เช่น จำนวนเต็ม สั้น ยาว จุดลอยตัว เป็นต้น

หมายเลข JavaScript จะถูกเก็บไว้เป็นตัวเลขทศนิยมที่มีความแม่นยำสองเท่า ตามมาตรฐาน IEEE 754 สากล

รูปแบบนี้เก็บตัวเลขใน 64 บิต โดยที่ตัวเลข (เศษส่วน) จะถูกเก็บไว้ในบิต 0 ถึง 51 เลขชี้กำลังในบิต 52 ถึง 62 และเครื่องหมายในบิต 63:

ค่า (aka Fraction/Mantissa) เลขชี้กำลัง เข้าสู่ระบบ
52 บิต (0 - 51)  11 บิต (52 - 62) 1 บิต (63)

ความแม่นยำของจำนวนเต็ม

จำนวนเต็ม (ตัวเลขที่ไม่มีจุดหรือเลขชี้กำลัง) มีความแม่นยำสูงสุด 15 หลัก

ตัวอย่าง

let x = 999999999999999;   // x will be 999999999999999
let y = 9999999999999999;  // y will be 10000000000000000

จำนวนทศนิยมสูงสุดคือ 17

ความแม่นยำแบบลอยตัว

เลขทศนิยมไม่แม่นยำ 100% เสมอไป:

let x = 0.2 + 0.1;

เพื่อแก้ปัญหาข้างต้น จะช่วยคูณและหาร:

let x = (0.2 * 10 + 0.1 * 10) / 10;


การเพิ่มตัวเลขและสตริง

คำเตือน !!

JavaScript ใช้ตัวดำเนินการ + สำหรับทั้งการเพิ่มและการต่อ

มีการเพิ่มตัวเลข สตริงถูกต่อกัน

หากคุณบวกตัวเลขสองตัว ผลลัพธ์จะเป็นตัวเลข:

ตัวอย่าง

let x = 10;
let y = 20;
let z = x + y;

หากคุณเพิ่มสองสตริง ผลลัพธ์จะเป็นการต่อสตริง:

ตัวอย่าง

let x = "10";
let y = "20";
let z = x + y;

หากคุณเพิ่มตัวเลขและสตริง ผลลัพธ์จะเป็นการต่อสตริง:

ตัวอย่าง

let x = 10;
let y = "20";
let z = x + y;

หากคุณเพิ่มสตริงและตัวเลข ผลลัพธ์จะเป็นการรวมสตริง:

ตัวอย่าง

let x = "10";
let y = 20;
let z = x + y;

ข้อผิดพลาดทั่วไปคือการคาดหวังว่าผลลัพธ์นี้จะเท่ากับ 30:

ตัวอย่าง

let x = 10;
let y = 20;
let z = "The result is: " + x + y;

ข้อผิดพลาดทั่วไปคือการคาดหวังผลลัพธ์นี้เป็น 102030:

ตัวอย่าง

let x = 10;
let y = 20;
let z = "30";
let result = x + y + z;

ล่าม JavaScript ทำงานจากซ้ายไปขวา

เพิ่ม 10 + 20 แรกเนื่องจาก x และ y เป็นตัวเลขทั้งคู่

จากนั้น 30 + "30" จะถูกต่อกันเพราะ z เป็นสตริง


สตริงตัวเลข

สตริง JavaScript สามารถมีเนื้อหาที่เป็นตัวเลขได้:

let x = 100;         // x is a number

let y = "100";       // y is a string

JavaScript จะพยายามแปลงสตริงเป็นตัวเลขในการดำเนินการที่เป็นตัวเลขทั้งหมด:

สิ่งนี้จะได้ผล:

let x = "100";
let y = "10";
let z = x / y;

สิ่งนี้จะได้ผลเช่นกัน:

let x = "100";
let y = "10";
let z = x * y;

และสิ่งนี้จะได้ผล:

let x = "100";
let y = "10";
let z = x - y;

แต่สิ่งนี้จะไม่ทำงาน:

let x = "100";
let y = "10";
let z = x + y;

ในตัวอย่างสุดท้าย JavaScript ใช้ตัวดำเนินการ + เพื่อเชื่อมสตริง


น่าน - ไม่ใช่ตัวเลข

NaN เป็นคำสงวน JavaScript ที่ระบุว่าตัวเลขไม่ใช่ตัวเลขตามกฎหมาย

การพยายามทำเลขคณิตด้วยสตริงที่ไม่ใช่ตัวเลขจะส่งผลให้NaN(ไม่ใช่ตัวเลข):

ตัวอย่าง

let x = 100 / "Apple";

อย่างไรก็ตาม หากสตริงมีค่าตัวเลข ผลลัพธ์จะเป็นตัวเลข:

ตัวอย่าง

let x = 100 / "10";

คุณสามารถใช้ฟังก์ชัน Global JavaScript isNaN() เพื่อดูว่าค่าใดไม่ใช่ตัวเลขหรือไม่:

ตัวอย่าง

let x = 100 / "Apple";
isNaN(x);

ระวังNaN. หากคุณใช้NaNในการดำเนินการทางคณิตศาสตร์ ผลลัพธ์จะเป็นNaN:

ตัวอย่าง

let x = NaN;
let y = 5;
let z = x + y;

หรือผลลัพธ์อาจเป็นการต่อกันเช่น NaN5:

ตัวอย่าง

let x = NaN;
let y = "5";
let z = x + y;

NaNเป็นตัวเลข: typeof NaNreturn number:

ตัวอย่าง

typeof NaN;

อินฟินิตี้

Infinity(หรือ-Infinity) คือค่าที่ JavaScript จะส่งกลับหากคุณคำนวณตัวเลขนอกจำนวนที่มากที่สุด

ตัวอย่าง

let myNumber = 2;
// Execute until Infinity
while (myNumber != Infinity) {
  myNumber = myNumber * myNumber;
}

หารด้วย 0 (ศูนย์) ยังสร้างInfinity:

ตัวอย่าง

let x =  2 / 0;
let y = -2 / 0;

Infinityเป็นตัวเลข: typeof Infinityreturn number.

ตัวอย่าง

typeof Infinity;

เลขฐานสิบหก

JavaScript ตีความค่าคงที่ตัวเลขเป็นเลขฐานสิบหกหากนำหน้าด้วย 0x

ตัวอย่าง

let x = 0xFF;

อย่าเขียนตัวเลขที่มีศูนย์นำหน้า (เช่น 07)
JavaScript บางเวอร์ชันตีความตัวเลขเป็นฐานแปดหากเขียนด้วยศูนย์นำหน้า

ตามค่าเริ่มต้น JavaScript จะแสดงตัวเลขเป็นทศนิยมฐาน 10

แต่คุณสามารถใช้ วิธีการเพื่อส่ง ออกtoString()ตัวเลขจากฐาน 2 ถึงฐาน 36

เลขฐาน สิบหกเป็นฐาน 16 ทศนิยมเป็นฐาน10 เลขฐาน แปดคือฐาน 8 ไบนารีเป็นฐาน 2

ตัวอย่าง

let myNumber = 32;
myNumber.toString(10);
myNumber.toString(32);
myNumber.toString(16);
myNumber.toString(8);
myNumber.toString(2);

JavaScript Numbers เป็นวัตถุ

โดยปกติตัวเลข JavaScript จะเป็นค่าดั้งเดิมที่สร้างจากตัวอักษร:

let x = 123;

แต่ตัวเลขยังสามารถกำหนดเป็นวัตถุด้วยคำหลักnew:

let y = new Number(123);

ตัวอย่าง

let x = 123;
let y = new Number(123);

อย่าสร้างวัตถุตัวเลข

คีย์เวิร์ด ทำให้newโค้ดซับซ้อนและทำให้ความเร็วในการดำเนินการช้าลง

Number Objects สามารถสร้างผลลัพธ์ที่ไม่คาดคิดได้:

เมื่อใช้ตัว==ดำเนินการ x และ y จะเท่ากัน :

let x = 500;
let y = new Number(500);

เมื่อใช้ตัว===ดำเนินการ x และ y ไม่เท่ากัน

let x = 500;
let y = new Number(500);

สังเกตความแตกต่างระหว่าง(x==y)และ(x===y).

(x == y) จริงหรือเท็จ?

let x = new Number(500);
let y = new Number(500);

(x === y) จริงหรือเท็จ?

let x = new Number(500);
let y = new Number(500);

Comparing two JavaScript objects always returns false.

Complete JavaScript Number Reference

For a complete Number reference, visit our:

Complete JavaScript Number Reference.

The reference contains descriptions and examples of all Number properties and methods.