มาพูดถึงสิ่งที่ไม่ได้กำหนดก่อน:
ตัวแปรใน JavaScript เป็นประเภทที่อ่อนแอดังนั้นเมื่อประกาศตัวแปรคุณจะต้องใช้คำหลัก VAR เท่านั้น หากเป็นภาษาที่พิมพ์อย่างมากเช่น C หากไม่ได้ระบุค่าเริ่มต้นเมื่อประกาศตัวแปรจะได้รับค่าเริ่มต้นเช่นค่าเริ่มต้นของตัวแปร int คือ 0 แต่ในภาษาที่อ่อนแอเช่น JavaScript
var v1;
มันทำให้เขาเท็จหรือ 0 หรือ ''?
เนื่องจากไม่มีประเภทจึงเป็นไปไม่ได้ที่จะพิจารณา ใน JavaScript สำหรับตัวแปรนี้ที่ไม่มีค่าเริ่มต้นหลังชีวิตให้มันไม่ได้กำหนด อย่างไรก็ตามหลักฐานคือตัวแปรนี้จะต้องประกาศและข้อผิดพลาดจะเกิดขึ้นหากไม่ได้ประกาศสำหรับตัวระบุ ตรวจสอบรหัสด้านล่าง
vo = "vo"; // สร้างตัวแปรส่วนกลางโดยไม่ต้องใช้คำหลัก VAR หากคุณไม่ได้กำหนดค่าจะมีการรายงานข้อผิดพลาด ดังที่แสดงในต่อไปนี้
// v1; // จะมีข้อผิดพลาด
var v2; // undeifned
var v3 = ""; // null
การแจ้งเตือน (VO);
// Alert (v1); //
การแจ้งเตือน (v2);
การแจ้งเตือน (v3);
พูดคุยเกี่ยวกับ Null:
JavaScript มีประเภทพื้นฐานหลายประเภท, สตริง, บูลีนและวัตถุ มีสองสถานการณ์สำหรับตัวแปรประเภทวัตถุ หนึ่งคือมันเป็นอินสแตนซ์ของวัตถุและอีกอันหนึ่งเป็นโมฆะอ้างอิงที่ว่างเปล่า เพื่อนที่คุ้นเคยกับภาษาที่มุ่งเน้นวัตถุเช่น Java ควรเข้าใจได้ง่าย สำหรับทั้งสองกรณีประเภทของพวกเขาคือวัตถุ เฉพาะเมื่อตัวแปรในจาวาสคริปต์ถูกกำหนดให้กับพวกเขา
มันจะกำหนดประเภทของมันเช่นด้านล่าง
รหัสมีดังนี้:
var v1 = 1; var v2 = true; การแจ้งเตือน (typeof v1); // การแจ้งเตือนหมายเลข (typeof v2); // บูลีน v2 = วันที่ใหม่ (); การแจ้งเตือน (typeof v2); // Object v2 = "Str"; การแจ้งเตือน (typeof v2); // สตริง v2 = null; การแจ้งเตือน (typeof v2); //วัตถุ
อย่างที่คุณเห็น NULL แสดงถึงค่าประเภทวัตถุพิเศษใน JavaScript ซึ่งใช้เพื่อแสดงแนวคิดของการอ้างอิง null หากตัวระบุถูกประกาศว่าเป็นประเภทวัตถุ แต่ไม่ได้รับอินสแตนซ์สำหรับเวลานั้นก็สามารถเริ่มต้นเป็นค่า null สำหรับการใช้งานในภายหลัง
มันไม่ถูกต้องอย่างแน่นอน พูดง่ายๆสำหรับตัวแปรทั้งหมดตราบใดที่ไม่ได้ระบุค่าเริ่มต้นหลังจากการประกาศจะไม่ได้กำหนด หากประเภทวัตถุถูกใช้เพื่อแสดงแนวคิดของการอ้างอิงโมฆะมันจะถูกแสดงโดย NULL
นี่คือส่วนเพิ่มเติมบางส่วน:
NULL: หมายความว่าไม่มีค่า;
ไม่ได้กำหนด: ระบุตัวแปรที่ไม่ได้ประกาศหรือตัวแปรที่ได้รับการประกาศ แต่ยังไม่ได้รับมอบหมายหรือคุณสมบัติวัตถุที่ไม่มีอยู่ ตัวดำเนินการ == ปฏิบัติต่อทั้งสองเท่ากัน หากคุณต้องการแยกความแตกต่างระหว่างทั้งสองให้ใช้ตัวดำเนินการ === หรือประเภทของตัวดำเนินการ ทั้งสองรวมอยู่ใน IF (! วัตถุ) {}