ใน JavaScript การดำเนินการทางคณิตศาสตร์สามารถดำเนินการผ่านการดำเนินการสองครั้ง:
1. +, -, *, /, % และผู้ให้บริการอื่น ๆ
2. ใช้ฟังก์ชั่นการคำนวณของวัตถุคณิตศาสตร์ ตัวอย่างเช่นใช้ math.pow (2,3) เพื่อคำนวณกำลังของ 2 ถึง 3
การดำเนินการทางคณิตศาสตร์ใน JavaScript ไม่เหมือนกับ Java การล้นของผลการคำนวณการหารด้วย 0 และตัวเลขลบกำลังสองเป็นกฎหมายทั้งหมดและผลลัพธ์เป็นค่าพิเศษใน JavaScript: บวกหรืออินฟินิตี้เชิงลบ (อินฟินิตี้), บวกหรือลบ 0, NAN (ไม่ใช่หมายเลข):
1. อินฟินิตี้บวกและลบ เมื่อผลการคำนวณมีขนาดใหญ่กว่าจำนวนสูงสุดที่จาวาสคริปต์สามารถเป็นตัวแทน (number.max_value) ผลลัพธ์คืออินฟินิตี้บวก เมื่อผลการคำนวณมีขนาดเล็กกว่าจำนวนขั้นต่ำที่จาวาสคริปต์สามารถเป็นตัวแทน (-number.max_value) ผลลัพธ์คืออินฟินิตี้เชิงลบ การดำเนินการทางคณิตศาสตร์เช่น +, -, *และ / เกี่ยวข้องกับอินฟินิตี้ทั้งหมดปฏิบัติตามกฎของการคำนวณขีด จำกัด ในคณิตศาสตร์ขั้นสูง ผลลัพธ์ของ 1/0 คืออินฟินิตี้เชิงบวกและผลลัพธ์ของ -1/0 คืออนันต์เชิงลบ
2. บวกหรือลบ 0. เมื่อผลการคำนวณเป็นบวก แต่น้อยกว่าทศนิยมขั้นต่ำ (number.min_value) ที่ JavaScript สามารถเป็นตัวแทนได้ผลลัพธ์เป็นบวก 0; เมื่อผลการคำนวณเป็นลบ แต่มากกว่าทศนิยมลบสูงสุด (-number.min_value) ที่ JavaScript สามารถเป็นตัวแทนได้ผลลัพธ์เป็นลบ 0 โดยทั่วไปนักพัฒนาไม่จำเป็นต้องใส่ใจเกี่ยวกับความแตกต่างระหว่างบวกและลบ 0
3. ไม่มี สำหรับผลการคำนวณพิเศษบางอย่างที่ไม่สามารถแสดงได้แม้จะมีอินฟินิตี้เชิงบวกและเชิงลบ JavaScript ใช้ NAN เพื่อเป็นตัวแทนของพวกเขา (เป็นที่น่าสังเกตว่าแม้ว่า NAN จะหมายถึง "ไม่ใช่จำนวน" การคำนวณพิเศษเหล่านี้รวมถึง:
1) .0/0
2) .infinity/Infinity
3). ตัวเลขลบสี่เหลี่ยมจัตุรัส
4). ดำเนินการแปลงตัวเลขในสตริงที่ไม่ใช่ตัวเลข
สำหรับอินฟินิตี้และน่านพวกเขาเป็นทั้งผลลัพธ์ที่พิมพ์ "ไม่มีที่สิ้นสุด" และ "ไม่ใช่หมายเลข" และยังเป็นชื่อตัวแปรส่วนกลางที่แสดงถึงค่าพิเศษทั้งสองนี้ใน JavaScript ในความเป็นจริงใน eCmascript 3 ตัวแปรทั่วโลกทั้งสองนี้สามารถกำหนดค่าอื่น ๆ ได้ กฎที่บ้าคลั่งนี้ได้รับการแก้ไขใน ECMAScript 5 เพื่อให้ตัวแปรทั่วโลกสองตัวอ่านอย่างเดียว นอกเหนือจากการเข้าถึงตัวแปรอินฟินิตี้โดยตรงและตัวแปร NAN แล้วคุณยังสามารถใช้ค่าพิเศษสองค่านี้ได้โดยการเข้าถึงตัวแปรสมาชิกของตัวเลขตัวเลข:
1.infinity เทียบเท่ากับ number.positive_infinity
2.-Infinity เทียบเท่ากับ number.Negative_infinity
3. ไม่เทียบเท่ากับ number.nan
ในจาวาสคริปต์น่านเป็นค่าพิเศษที่น่าสนใจซึ่งมีคุณสมบัติพิเศษ: มันไม่เท่ากับค่าอื่น ๆ (รวมถึงตัวเอง) มีสองวิธีในการพิจารณาว่าค่าเป็นน่าน:
1. สำหรับตัวแปร x ให้พิจารณาว่า x! = x เป็นจริงหรือไม่ นิพจน์นี้เป็นจริงเฉพาะในกรณีที่ x คือ nan
2. สำหรับตัวแปร X ให้เรียกฟังก์ชั่นส่วนกลาง iSnan () ใน JavaScript เพื่อตรวจสอบว่า ISNAN (X) เป็นจริงหรือไม่ วิธีนี้กำหนดว่า NAN ไม่ได้เข้มงวดจริง ๆ เพราะการแสดงออก isnan (x) เป็นจริงใน 4 กรณี:
1) .x คือน่าน
2) .x เป็นสตริงและสตริงไม่ใช่ตัวเลข
3) .x เป็นวัตถุ
4) .x ไม่ได้กำหนด
นอกเหนือจาก ISNAN () JavaScript ยังมีฟังก์ชั่นทั่วโลกที่เป็นประโยชน์อีกอย่างหนึ่ง: ISFinite () สำหรับตัวแปร A, isfinite (a) เป็นจริงในกรณีต่อไปนี้:
1) .a คือจำนวน แต่ไม่ใช่ NAN หรืออินฟินิตี้บวกและเชิงลบ
2) .a เป็นสตริง แต่เนื้อหาของสตริงเป็นหมายเลขอินฟินิตี้ที่ไม่ใช่ NAN และไม่เป็นบวก
3) .a เป็นโมฆะ
4) .a คือค่าบูลีน
เนื่องจากประเภทที่ไม่ใช่ตัวเลขเช่น NULL และ Undefined จะมีผลกระทบต่อผลลัพธ์ฉันคิดว่าเป็นการส่วนตัวที่ดีที่สุดที่จะตัดสินประเภทของพารามิเตอร์ก่อนที่จะใช้ isnan () หรือ isfinite ()
การทดลอง
การคัดลอกรหัสมีดังนี้:
// ทดสอบอินฟินิตี้
var a = number.max_value;
console.log (a*1.1); // infinity
console.log (a*-1.1); //-อินฟินิตี้
console.log (1/0); // infinity
console.log (-1/0); //-อินฟินิตี้
// ทดสอบบวก/ลบ 0
var b = number.min_value;
console.log (b/2); // 0
console.log (-b/2); // 0
// ทดสอบน่าน
console.log (0/0); // nan
console.log (อินฟินิตี้/อินฟินิตี้); // nan
console.log (math.sqrt (-1)); // nan
console.log (parseint ("String")); // nan
// ทดสอบการเปรียบเทียบอินฟินิตี้
console.log (infinity === number.positive_infinity); // true
console.log (-infinity === number.negative_infinity); // true
// ทดสอบการเปรียบเทียบ NAN
console.log (nan === nan); // false
// ทดสอบ isnan ()
console.log (isnan (nan)); // true
console.log (iSnan ("42")); // false
console.log (iSnan ("String")); // true
console.log (isnan ({})); // true
console.log (isnan (undefined)); // true
console.log (isnan (null)); // false
// ทดสอบ isfinite ()
console.log (isfinite (42)); // true
console.log (isfinite (อินฟินิตี้)); // false
console.log (isfinite (nan)); // false
console.log (isfinite ("29")); // true
console.log (isfinite ("String")); // false
console.log (isfinite (null)); // true
console.log (isfinite (undefined)); // false
console.log (isfinite (true)); // true
console.log (isfinite (false)); // true