คำถามติดแท็ก or-operator

12
คำอธิบายการกำหนดตัวแปร JavaScript หรือ (||)
รับตัวอย่าง JavaScript นี้ ... var a; var b = null; var c = undefined; var d = 4; var e = 'five'; var f = a || b || c || d || e; alert(f); // 4 ใครช่วยอธิบายหน่อยได้ไหมว่าเทคนิคนี้เรียกว่าอะไร (เดาที่ดีที่สุดของฉันอยู่ในชื่อของคำถามนี้!) แล้วมันทำงานยังไงกันแน่? ความเข้าใจของฉันคือตัวแปรfจะถูกกำหนดค่าที่ใกล้ที่สุด (จากซ้ายไปขวา) ของตัวแปรแรกที่มีค่าที่ไม่เป็นโมฆะหรือไม่ได้กำหนด แต่ฉันไม่สามารถหาวัสดุอ้างอิงเกี่ยวกับเทคนิคนี้ได้มากและมี เห็นมันใช้มาก นอกจากนี้เทคนิคนี้ใช้เฉพาะกับ JavaScript หรือไม่ ฉันรู้ว่าการทำสิ่งที่คล้ายกันใน PHP …

3
โอเปอเรเตอร์บูลีน && และ ||
ตามคำนิยามภาษา R ความแตกต่างระหว่าง&และ&&(ตามลําดับ|และ||) คือการที่อดีตถูก vectorized ในขณะที่หลังไม่ได้ ตามข้อความช่วยเหลือฉันอ่านความแตกต่างคล้ายกับความแตกต่างระหว่าง "และ" และ "AndAlso" (ตามลำดับ "หรือ" และ "OrElse") ... ความหมาย: นั่นไม่ใช่การประเมินทั้งหมดหากพวกเขาไม่จำเป็นต้องเป็น (เช่น A หรือ B หรือ C เป็นจริงเสมอถ้า A เป็นจริงดังนั้นหยุดประเมินถ้า A เป็นจริง) มีคนช่วยแสงที่นี่ได้ไหม นอกจากนี้ยังมี AndAlso และ OrElse ใน R หรือไม่

12
สิ่งก่อสร้าง x = x || y หมายถึงอะไร
ฉันกำลังแก้จุดบกพร่อง JavaScript บางส่วนและไม่สามารถอธิบายสิ่งนี้||ไม่? function (title, msg) { var title = title || 'Error'; var msg = msg || 'Error on Request'; } คนที่สามารถให้คำแนะนำฉันทำไมผู้ชายคนนี้คือการใช้var title = title || 'ERROR'? บางครั้งฉันเห็นมันโดยไม่มีการvarประกาศเช่นกัน

8
ตัวดำเนินการเชิงตรรกะ, || หรือหรือ?
ฉันจำได้ว่าอ่านย้อนหลังเกี่ยวกับตัวดำเนินการเชิงตรรกะในกรณีของการORใช้งาน||นั้นดีกว่าor(หรือในทางกลับกัน) ฉันต้องใช้สิ่งนี้ในโปรเจ็กต์ของฉันเมื่อมันกลับมาหาฉัน แต่ฉันจำไม่ได้ว่ามีการแนะนำตัวดำเนินการใดหรือเป็นจริง ไหนดีกว่ากันและทำไม?

7
“ var FOO = FOO || คืออะไร {}” (กำหนดตัวแปรหรือวัตถุว่างให้กับตัวแปรนั้น) หมายถึงใน Javascript?
เมื่อดูซอร์สโค้ดออนไลน์ฉันพบสิ่งนี้ที่ด้านบนของไฟล์ต้นฉบับหลาย ๆ ไฟล์ var FOO = FOO || {}; FOO.Bar = …; แต่ฉันไม่รู้ว่า|| {}จะทำอย่างไร ฉันรู้ว่า{}มีค่าเท่ากับnew Object()และฉันคิดว่า||มีไว้สำหรับบางสิ่งเช่น "ถ้ามีอยู่แล้วให้ใช้ค่าอื่นให้ใช้วัตถุใหม่ เหตุใดฉันจึงเห็นสิ่งนี้ที่ด้านบนของไฟล์ต้นฉบับ

8
ตัวดำเนินการทางลัด“ or-assignment” (| =) ใน Java
ฉันมีการเปรียบเทียบที่ต้องทำใน Java มานานและฉันอยากรู้ว่าอย่างน้อยหนึ่งอย่างออกมาเป็นจริงหรือไม่ สตริงของการเปรียบเทียบเป็นเวลานานและยากที่จะอ่านดังนั้นฉันโพล่งขึ้นเพื่อให้สามารถอ่านและจะไปใช้ประกอบการทางลัดมากกว่า|=negativeValue = negativeValue || boolean boolean negativeValue = false; negativeValue |= (defaultStock < 0); negativeValue |= (defaultWholesale < 0); negativeValue |= (defaultRetail < 0); negativeValue |= (defaultDelivery < 0); ฉันคาดว่าnegativeValueจะเป็นจริงหากค่า <something> เริ่มต้นใด ๆ เป็นลบ ใช้ได้หรือไม่ มันจะทำตามที่ฉันคาดหวังหรือไม่? ฉันไม่เห็นมันกล่าวถึงบนไซต์ของ Sun หรือ stackoverflow แต่ดูเหมือนว่า Eclipse จะไม่มีปัญหากับมันและโค้ดจะคอมไพล์และรัน ในทำนองเดียวกันถ้าฉันต้องการทำการตัดกันเชิงตรรกะหลาย ๆ จุดฉันสามารถใช้&=แทนได้&&หรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.