หากคุณอ่านความคิดเห็นในinArray
หน้าjQuery ที่นี่มีคำประกาศที่น่าสนใจ:
!!~jQuery.inArray(elm, arr)
ตอนนี้ฉันเชื่อว่าเครื่องหมายอัศเจรีย์คู่จะแปลงผลลัพธ์เป็นประเภทboolean
โดยมีค่าเป็นtrue
. สิ่งที่ฉันไม่เข้าใจคือการใช้ตัวดำเนินการ tilde ( ~
) ทั้งหมดนี้คืออะไร?
var arr = ["one", "two", "three"];
if (jQuery.inArray("one", arr) > -1) { alert("Found"); }
การปรับโครงสร้างif
คำสั่ง:
if (!!~jQuery.inArray("one", arr)) { alert("Found"); }
ทำให้พังถล่ม:
jQuery.inArray("one", arr) // 0
~jQuery.inArray("one", arr) // -1 (why?)
!~jQuery.inArray("one", arr) // false
!!~jQuery.inArray("one", arr) // true
-2
ฉันยังพบว่าถ้าฉันใส่ตัวหนอนในหน้าผลที่ได้คือ
~!!~jQuery.inArray("one", arr) // -2
ฉันไม่เข้าใจจุดประสงค์ของตัวหนอนที่นี่ ใครช่วยอธิบายหรือชี้ให้ฉันดูแหล่งข้อมูลได้ไหม