js กำหนดประเภทที่ไม่ได้กำหนด
วันนี้ใช้ showModalDialog เพื่อเปิดเพจและส่งคืนค่า เมื่อเพจที่เปิดคลิกปุ่มปิดหรือคลิกปุ่มปิดบนเบราว์เซอร์โดยตรง ค่าที่ส่งคืนจะไม่ถูกกำหนด
ดังนั้นจงตัดสินใจด้วยตัวเอง
var reValue=window.showModalDialog("", "" ");
ถ้า (reValue== ไม่ได้กำหนด){
alert("ไม่ได้กำหนด");
-
ฉันพบว่าฉันไม่สามารถบอกได้ ในที่สุดฉันก็ตรวจสอบข้อมูลและจำเป็นต้องใช้ typeof
วิธี:
ถ้า (typeof (มูลค่าใหม่) == "ไม่ได้กำหนด") {
alert("ไม่ได้กำหนด");
-
typeof ส่งคืนสตริง มีความเป็นไปได้หกแบบ: "number", "string", "boolean", "object", "function", "undef"
ความแตกต่างระหว่างไม่ได้กำหนด null และ NaN ใน js
1.การวิเคราะห์ประเภท:
ข้อมูลใน js มี 5 ประเภท ได้แก่ undefinition, boolean, number, string และ object 4 ประเภทแรกเป็นประเภทดั้งเดิม และประเภทที่ 5 เป็นประเภทอ้างอิง
วาร์ a1;
var a2 = จริง;
วาร์ a3 = 1;
var a4 = "สวัสดี";
var a5 = วัตถุใหม่ ();
var a6 = โมฆะ;
var a7 = น่าน;
var a8 = ไม่ได้กำหนด;
การแจ้งเตือน (ประเภทของ a); // แสดง "ไม่ได้กำหนด"
การแจ้งเตือน (ประเภท a1); // แสดง "ไม่ได้กำหนด"
การแจ้งเตือน (ประเภท a2); // แสดง "บูลีน"
การแจ้งเตือน (ประเภท a3); // แสดง "หมายเลข"
alert(ประเภท a4); // แสดง "string"
การแจ้งเตือน (ประเภท a5); // แสดง "วัตถุ"
การแจ้งเตือน (ประเภท a6); // แสดง "วัตถุ"
การแจ้งเตือน (ประเภท a7); // แสดง "หมายเลข"
การแจ้งเตือน (ประเภท a8); // แสดง "ไม่ได้กำหนด"
จากโค้ดข้างต้น เราจะเห็นว่าค่าที่ไม่ได้กำหนดและค่าที่ไม่ได้กำหนดนั้นไม่ได้ถูกกำหนดไว้ null คืออ็อบเจ็กต์พิเศษ และ NaN คือตัวเลขพิเศษ
2. การดำเนินการเปรียบเทียบ
var a1; // ไม่ได้กำหนดค่าของ a1
var a2 = โมฆะ;
var a3 = น่าน;
การแจ้งเตือน (a1 == a2); // แสดง "จริง"
alert(a1 != a2); //แสดง "false"
alert(a1 == a3); // แสดงเป็น "false"
alert(a1 != a3); //แสดง "จริง"
alert(a2 == a3); // แสดงเป็น "false"
alert(a2 != a3); //แสดง "จริง"
การแจ้งเตือน (a3 == a3); // แสดง "เท็จ"
alert(a3 != a3); //แสดง "จริง"
จากโค้ดข้างต้น เราสามารถสรุปได้ว่า (1) undefined และ null เท่ากัน (2) NaN ไม่เท่ากับค่าใดๆ และไม่เท่ากับตัวมันเอง
คุณสมบัติ JavaScript ไม่ได้กำหนด
ความหมายและการใช้งาน
แอตทริบิวต์ที่ไม่ได้กำหนดใช้ในการจัดเก็บค่าที่ไม่ได้กำหนดของ JavaScript
ไวยากรณ์
ไม่ได้กำหนด
แสดงให้เห็น
คุณไม่สามารถใช้ for/in loop เพื่อระบุคุณสมบัติที่ไม่ได้กำหนด และคุณไม่สามารถใช้ตัวดำเนินการลบเพื่อลบมันได้
undefinition ไม่ใช่ค่าคงที่และสามารถตั้งค่าเป็นค่าอื่นได้
ไม่ได้กำหนดจะถูกส่งกลับเมื่อพยายามอ่านคุณสมบัติของวัตถุที่ไม่มีอยู่
เคล็ดลับและหมายเหตุ
เคล็ดลับ: คุณสามารถใช้ตัวดำเนินการ === เพื่อทดสอบว่าค่าไม่ได้ถูกกำหนดไว้เท่านั้น เนื่องจากตัวดำเนินการ == ถือว่าค่าที่ไม่ได้กำหนดนั้นมีค่าเท่ากับ null
หมายเหตุ: null หมายถึงไม่มีค่า ในขณะที่ undefinition หมายถึงตัวแปรที่ไม่ได้ประกาศ ตัวแปรที่ได้รับการประกาศแต่ไม่ได้กำหนดค่า หรือคุณสมบัติของอ็อบเจ็กต์ที่ไม่มีอยู่
ตัวอย่าง
ในตัวอย่างนี้ เราจะตรวจพบว่าหนึ่งในสองตัวแปรไม่ได้ถูกกำหนดไว้:
<script type="text/javascript">
วาร์ t1=""
วาร์ต2
ถ้า (t1===ไม่ได้กำหนด) {document.write("t1 ไม่ได้กำหนด")}
ถ้า (t2===ไม่ได้กำหนด) {document.write("t2 ไม่ได้กำหนด")}
</สคริปต์>
เอาท์พุท:
t2 ไม่ได้กำหนดไว้