คำถามติดแท็ก javascript

JavaScript (เพื่อไม่ให้สับสนกับ Java) เป็นภาษาระดับสูง, ไดนามิก, หลายกระบวนทัศน์, ภาษาที่พิมพ์น้อยที่ใช้สำหรับทั้งฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์สคริปต์ ใช้แท็กนี้สำหรับคำถามเกี่ยวกับการใช้งานทั่วไปของ ECMAScript, JavaScript, JScript ฯลฯ โดยทั่วไปแล้ว JS ไม่ได้อ้างถึง ECMA-cousin, ActionScript

2
ตัวดำเนินการ Ternary ของ Javascript เทียบกับ ||
ฉันดูโค้ด node.js ก่อนหน้านี้และฉันสังเกตเห็นว่าคนที่เขียนมันดูเหมือนจะชอบไวยากรณ์ต่อไปนี้: var fn = function (param) { var paramWithDefault = null == param ? 'Default Value' : param; } ในสิ่งที่ฉันคิดว่ากระชับกว่า: var fn = function (param) { var paramWithDefault = param || 'Default Value'; } ฉันสงสัยว่ารูปแบบที่สองเป็นไวยากรณ์ JavaScript ที่สังคมยอมรับได้มากกว่าหรือไม่ฉันเคยเห็นรูปแบบที่แปลกประหลาดมากกว่าตัวดำเนินการแบบไตรภาคเพื่อจุดประสงค์นี้หรือไม่ ฉันสังเกตว่าในตัวอย่างแรกเขาใช้สองเท่า (ไม่ใช่สามเท่า) ซึ่งหมายความว่ามันจะนับว่า "ไม่ได้กำหนด" เป็นโมฆะซึ่งจะลดผลกระทบที่ฉันคิดได้ อย่างไรก็ตามฉันได้อ่านในหลาย ๆ ที่ == เป็นตัวดำเนินการที่ค่อนข้างชั่วร้ายใน JavaScript …

4
ฉันควรทำการแปลเป็นภาษาท้องถิ่นที่ไหน (ฝั่งเซิร์ฟเวอร์หรือฝั่งไคลเอ็นต์)
ขณะนี้ฉันกำลังพัฒนาเว็บแอปพลิเคชันใหม่โดยใช้ไคลเอนต์ JavaScript ที่มีการสื่อสารกับบริการเว็บ REST หลายแห่งบนเซิร์ฟเวอร์ของฉัน แอปพลิเคชันนั้นมีวัตถุประสงค์เพื่อใช้ในประเทศอย่างน้อยสองที่มีภาษาแตกต่างกันดังนั้นเราจึงจำเป็นต้องแปลเป็นภาษาท้องถิ่น คำถามของฉันคือที่ใดที่ฉันควรจัดการการแปล: บริการ REST ควรได้รับการร้องขอและส่งคำตอบกับข้อมูลที่แปลแล้วหรือลูกค้าควรรับและส่งข้อมูลทั่วไปแล้วรับผิดชอบในการแปล

4
ไม่สามารถแก้ไขความลึกลับของฟังก์ชั่นใน Javascript ได้
ฉันกำลังพยายามที่จะเข้าใจเบื้องหลังม่าน Javascript และชนิดของการติดอยู่ในการทำความเข้าใจการสร้างสร้างขึ้นในวัตถุโดยเฉพาะวัตถุและฟังก์ชั่นและความสัมพันธ์ระหว่างพวกเขา เมื่อฉันอ่านว่าวัตถุในตัวทั้งหมดเช่น Array, String ฯลฯ เป็นส่วนขยาย (สืบทอด) จาก Object ฉันคิดว่า Object เป็นวัตถุแรกที่สร้างขึ้นในวัตถุที่สร้างขึ้นและส่วนที่เหลือของวัตถุสืบทอดมาจากมัน แต่มันก็ไม่สมเหตุสมผลเมื่อคุณรู้ว่า Object สามารถสร้างได้โดยฟังก์ชั่นเท่านั้น แต่ฟังก์ชั่นนั้นก็ไม่ได้มี แต่วัตถุของ Function มันเริ่มที่จะฟังดูลำบากเช่นไก่และไก่ สิ่งที่สับสนอย่างยิ่งคือถ้าฉันconsole.log(Function.prototype)พิมพ์ฟังก์ชั่น แต่เมื่อฉันพิมพ์console.log(Object.prototype)มันจะพิมพ์วัตถุ ทำไมFunction.prototypeฟังก์ชั่นเมื่อมันถูกหมายถึงเป็นวัตถุ? นอกจากนี้ตามเอกสาร Mozilla ทุก javascript functionเป็นส่วนขยายของFunctionวัตถุ แต่เมื่อคุณconsole.log(Function.prototype.constructor)เป็นอีกฟังก์ชั่น ตอนนี้คุณจะใช้บางสิ่งเพื่อสร้างมันเองได้อย่างไร (Mind = blown) สิ่งสุดท้ายFunction.prototypeคือฟังก์ชั่น แต่ฉันสามารถเข้าถึงconstructorฟังก์ชั่นที่ใช้Function.prototype.constructorหมายความว่าFunction.prototypeเป็นฟังก์ชั่นที่ส่งกลับprototypeวัตถุ

4
ไม่สามารถเข้าใจรูปแบบการออกแบบโปรแกรมมิง
ฉันทำงานกับ javascript ตลอด 4 ปีที่ผ่านมา ฉันมีความมั่นใจมากเกี่ยวกับทักษะการแก้ปัญหาของฉันและฉันเห็นได้ว่าคุณภาพรหัสของฉันดีขึ้น ฉันพยายามติดตามชุมชนและฉันกำลังทำงานกับ ES2015 และ React.js อย่างไรก็ตามฉันรู้สึกว่าฉันไม่สามารถเข้าใจรูปแบบการออกแบบโปรแกรมได้เลย ฉันรู้ว่าจะหาแหล่งข้อมูลเกี่ยวกับเรื่องนี้ได้ที่ไหนและฉันได้อ่านหนังสือเกี่ยวกับเรื่องนี้แล้ว ฉันพึ่งพาเพื่อนร่วมงานอาวุโสของฉันในการตัดสินใจเกี่ยวกับโครงสร้างโครงการ แต่ฉันไม่มีปัญหาในการทำงาน เมื่อใดก็ตามที่ฉันต้องการเริ่มต้นด้วยตัวเองฉันจะมองหาสองเส้นทางนี้: ถ้าฉันใช้ห้องสมุด / กรอบใหญ่อย่าง React.js ฉันมักจะคัดลอกสิ่งที่ชุมชนกำลังทำอยู่ ถ้าฉันทำอะไรที่เล็กลงฉันจะใช้รูปแบบโมดูล ฉันรู้ว่าเมื่อฉันได้รับความเข้าใจที่ดีขึ้นในเรื่องนี้ฉันจะสามารถตัดสินใจได้ดีขึ้น แต่ตอนนี้ฉันหลงทางไปแล้ว ฉันควรมองหาการศึกษาขั้นสูงในเรื่องนี้หรือไม่? ฉันต้องการที่ปรึกษาในเรื่องนี้หรือไม่? ฉันแค่โง่เหรอ? นี่มันยากที่จะเข้าใจใช่ไหม

1
ทำไม ES6 ถึงไม่มีลูกศรแบบบางฟังก์ชั่น?
ES6 เพิ่มฟังก์ชั่นลูกศรไขมัน ( =>) ซึ่งมีสองความแตกต่างที่สำคัญจากฟังก์ชั่นปกติ: ไวยากรณ์ที่สั้นกว่า (รวมถึงการส่งคืนโดยนัยถ้าคุณใช้เนื้อความที่เป็นนิพจน์เดียว) สืบทอดthisมาจากขอบเขตโดยรอบ สิ่งเหล่านี้เป็นคุณสมบัติที่มีประโยชน์มาก แต่ดูเหมือนว่าฉันจะแยกจากคุณค่าและแอพพลิเคชั่นของพวกเขาโดยสิ้นเชิง - บางครั้งฉันต้องการอย่างใดอย่างหนึ่งหรืออย่างอื่นหรือทั้งสองอย่างหรือทั้งสองอย่าง ดูเหมือนว่าแปลกที่ถ้าฉันต้องการใช้ฟังก์ชั่นไวยากรณ์สั้นฉันต้องใช้this-modifying พฤติกรรม และในทางกลับกัน. ฉันไม่เห็นว่าทำไมความสามารถทั้งสองนี้จึงถูกนำมาใช้เป็นส่วนเสริมของภาษา ถ้าฉันต้องการใช้ฟังก์ชั่นซินแทกซ์สั้น ๆ สำหรับผลตอบแทนและความกะทัดรัดโดยปริยาย (ในบางบริบทที่เต็มfunction (..) { return ...}จะอ่านได้น้อยกว่าเล็กน้อย) แต่ฉันต้องการใช้thisในฟังก์ชั่นของฉันเพื่ออ้างถึงบริบทการโทร? ไม่มีวิธีทำเช่นนี้ CoffeeScript มีทั้งฟังก์ชั่น->และ=>สไตล์และดูเหมือนว่า ES6 ยืม=>สไตล์จากที่นั่น ดังนั้นคำถามของฉันคือทำไม ES6 จึงไม่ยืม->สไตล์นี้ด้วย?
16 javascript  es6 

5
อัลกอริทึมสำหรับช่วงการทับซ้อนของแบนราบ
ฉันกำลังมองหาวิธีที่ดีในการทำให้แบน (แยก) รายการของช่วงตัวเลขที่อาจทับซ้อนกัน ปัญหาคล้ายกันมากกับคำถามนี้: วิธีที่เร็วที่สุดในการแยกช่วงวันที่ซ้อนทับกันและอื่น ๆ อีกมากมาย อย่างไรก็ตามช่วงนั้นไม่ได้เป็นจำนวนเต็มเท่านั้นและฉันกำลังมองหาอัลกอริทึมที่เหมาะสมซึ่งสามารถนำไปใช้งานได้อย่างง่ายดายใน Javascript หรือ Python เป็นต้น ข้อมูลตัวอย่าง: ตัวอย่างการแก้ไข: ขออภัยหากนี่เป็นสิ่งที่ซ้ำกัน แต่ฉันยังหาวิธีแก้ปัญหาไม่ได้

2
การสร้างฟังก์ชั่นที่ซ้อนกันเพื่อเหตุผลด้านสุนทรียะล้วนๆ?
ฉันสงสัยอยู่เสมอว่าโปรแกรมเมอร์คนอื่น ๆ คิดอย่างไรเกี่ยวกับความคิดในการสร้างฟังก์ชั่นความงามที่บริสุทธิ์ Function ProcessBigDataว่าฉันมีฟังก์ชั่นที่ประมวลผลชิ้นของข้อมูลที่: Step1บอกว่าผมต้องทำตามขั้นตอนกระบวนการหลายใช้ได้เฉพาะสำหรับข้อมูลที่: Step2, Step3, aproach ปกติฉันเห็นมากที่สุดในซอร์สโค้ดคือการเขียนความเห็นเช่น: Function ProcessBigData: # Does Step1 Step1.. Step1.. #Does Step2 Step2.. Step2.. สิ่งที่ฉันมักจะทำ แต่มักจะรู้สึกผิดเพราะขาดรูปแบบการเข้ารหัสโดยเพื่อนร่วมงานคือ: Function ProcessBigData: Function Step1: Step1.. Step1.. Function Step2: Step2.. Step2.. Step1() -> Step2() ฉันเป็นห่วงถ้ามีข้อเสียสำหรับสไตล์ดังกล่าวในJavascriptและPython มีทางเลือกอื่นที่ฉันไม่เห็นหรือไม่?

5
การหลีกเลี่ยงโอเปอเรเตอร์ใหม่ใน JavaScript - วิธีที่ดีกว่า
คำเตือน: นี่เป็นเรื่องยาว ขอให้มันง่าย ฉันต้องการหลีกเลี่ยงคำนำหน้าโอเปอเรเตอร์ใหม่ทุกครั้งที่ฉันเรียกนวกรรมิกใน JavaScript นี่เป็นเพราะฉันมักจะลืมมันและรหัสของฉันก็แย่มาก วิธีง่ายๆในการนี้คือ ... function Make(x) { if ( !(this instanceof arguments.callee) ) return new arguments.callee(x); // do your stuff... } แต่ฉันต้องการสิ่งนี้เพื่อยอมรับตัวแปร ของการโต้แย้งเช่นนี้ ... m1 = Make(); m2 = Make(1,2,3); m3 = Make('apple', 'banana'); ทางออกแรกทันทีน่าจะเป็นวิธี 'สมัคร' เช่นนี้ ... function Make() { if ( !(this instanceof arguments.callee) …
16 javascript 

6
เหตุใดการปิด JavaScript จึงสำคัญสำหรับ JavaScript
การแสดงออกแลมบ์ดาของ C # ก็มีการปิดเช่นกันแต่ไม่ค่อยมีการพูดคุยกันโดยชุมชนหรือหนังสือ C # ฉันเห็นคน JavaScript และหนังสือพูดถึงการปิดตัวมันมากกว่าที่พวกเขาทำในโลก C # ทำไมถึงเป็นอย่างนั้น?

8
Chromebook - เป็นที่น่าสนใจสำหรับโปรแกรมเมอร์หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา Google ประกาศchromebookเมื่อวานนี้ (11 พฤษภาคม 2011) ในขณะที่นี่เป็นสิ่งที่ดีฉันไม่มีเงื่อนงำว่ามันน่าสนใจที่จะซื้อหนึ่งสำหรับ (ไม่ใช่จาวาสคริปต์) - โปรแกรม คุณคิดอย่างไร? จะมีตัวอย่างเช่น Java IDE ในคลาวด์หรือไม่ บรรทัดคำสั่งแม้

12
เมื่อเรียนรู้ JS อะไรคือช่วงเวลา Aha ของคุณ? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา คุณจำตอนที่คุณเรียนรู้จาวาสคริปต์ได้หรือไม่? อะไรคือช่วงเวลาที่คุณ "ได้รับ" ในทันใด (ตัวอย่างเช่น CSS aha-ครู่ของฉันคือเมื่อฉันเรียนรู้เกี่ยวกับรูปแบบกล่อง ... ) เหตุผลที่ฉันถามคือฉันกำลังเรียน JS อยู่ 6 สัปดาห์ แต่ฉันก็ยังรู้สึกสับสนอยู่ดี นี่คือคำพูดจากสิ่งที่ฉันอ่านเมื่อเร็ว ๆ นี้ใน SO: "..functions ทำหน้าที่คล้ายกับค่าเนื่องจากเมธอดเป็นคุณสมบัติของวัตถุที่มีค่าของฟังก์ชัน (ซึ่งเป็นวัตถุด้วย)" ฉันอยากรู้ว่าถ้าคุณสับสนในตอนแรกและอะไรที่ทำให้คุณเข้าใจ (ฉันกำลังอ่าน Sitepoints "เพียงแค่ JavaScript" หนังสือ "Eloquent JavaScript" และการติดตาม Essential JavaScript ของ Lynda ฉันไม่ได้มีการเขียนโปรแกรมที่ยอดเยี่ยมและแย่มากในเรื่องคณิตศาสตร์) ขอบคุณ!

6
มันจะดีกว่าที่จะวางรหัส JS ในไฟล์ html หรือในไฟล์ภายนอก?
ถ้าฉันออกแบบเว็บไซต์หนึ่งหน้ามันจะดีกว่าถ้าสร้างไฟล์ภายนอกสำหรับรหัส JS ของฉันหรือแค่วางไว้ในรหัส html วางบนหน้าเว็บเพื่อโหลดเร็วขึ้นหรือไม่ ฉันสามารถเปลี่ยนการอนุญาตให้ปฏิเสธการร้องขอของผู้ใช้ได้หรือไม่ แต่หน้า html ยังคงสามารถเรียกรหัสได้
16 javascript 

5
ประโยชน์ของการมี "ไม่มีข้อยกเว้นรันไทม์" เช่น Elm เรียกร้องคืออะไร?
บางภาษาอ้างว่ามี "ไม่มีข้อยกเว้นสำหรับรันไทม์" เพื่อเป็นข้อได้เปรียบที่ชัดเจนกว่าภาษาอื่น ๆ ที่มี ฉันสับสนในเรื่องนี้ ข้อยกเว้นรันไทม์เป็นเพียงเครื่องมือเท่าที่ฉันรู้และเมื่อใช้กัน: คุณสามารถสื่อสารสถานะ "สกปรก" (ขว้างที่ข้อมูลที่ไม่คาดคิด) การเพิ่มสแต็กคุณสามารถชี้ไปที่ห่วงโซ่ของข้อผิดพลาด คุณสามารถแยกแยะระหว่างความยุ่งเหยิง (เช่นคืนค่าว่างในการป้อนข้อมูลที่ไม่ถูกต้อง) และการใช้งานที่ไม่ปลอดภัยที่ต้องการความสนใจจากนักพัฒนา (เช่นการโยนข้อยกเว้นในการป้อนข้อมูลที่ไม่ถูกต้อง) คุณสามารถเพิ่มรายละเอียดลงในข้อผิดพลาดของคุณด้วยข้อความข้อยกเว้นที่ให้รายละเอียดที่เป็นประโยชน์เพิ่มเติมช่วยแก้จุดบกพร่อง (ในทางทฤษฎี) ในทางกลับกันฉันพบว่ายากที่จะดีบักซอฟต์แวร์ที่ "กลืน" ข้อยกเว้น เช่น try { myFailingCode(); } catch { // no logs, no crashes, just a dirty state } ดังนั้นคำถามก็คืออะไรคือความได้เปรียบเชิงทฤษฎีที่แข็งแกร่งของการมี "ไม่มีข้อยกเว้นรันไทม์"? ตัวอย่าง https://guide.elm-lang.org/ ไม่มีข้อผิดพลาดรันไทม์ในทางปฏิบัติ ไม่มีค่าว่าง ไม่มีการกำหนดไม่ได้เป็นฟังก์ชั่น

1
เมื่อใดควรใช้การเขียนโปรแกรมต้นแบบใน JavaScript
ฉันใช้เวลาพอสมควรในการพัฒนาวิดเจ็ตอย่างง่ายสำหรับโครงการด้วยวิธีต่อไปนี้: var project = project || {}; (function() { project.elements = { prop1: val1, prop2: val2 } project.method1 = function(val) { // Do this } project.method2 = function(val) { // Do that } project.init = function() { project.method1(project.elements.prop1) project.method2(project.elements.prop2) } })() project.init(); แต่ฉันได้เริ่มเปลี่ยนรูปแบบของฉันเป็นดังต่อไปนี้: function Project() { this.elements = { prop1: …

10
วิธีที่ดีที่สุดสำหรับการเขียนโปรแกรมหมากรุก? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นคนที่ชอบเล่นหมากรุกและเป็นโปรแกรมเมอร์ ฉันเพิ่งตัดสินใจเริ่มสร้างโปรแกรมหมากรุกโดยใช้หมากรุกและความรู้ด้านการเขียนโปรแกรมของฉัน ดังนั้นนี่คือคำถามของฉัน: ควรใช้ภาษาใด (ฉันคุ้นเคยกับ Java, C ++ และ Python) และวิธีการในขณะที่เขียนเอ็นจิ้นหมากรุก คำแนะนำเล็กน้อยจะได้รับการชื่นชมมาก แก้ไข: ดังนั้นฉันตัดสินใจที่จะทำมันใน JavaScript ฉันดาวน์โหลดChess UI นี้จาก github และตอนนี้ฉันก็พร้อมแล้ว! ขั้นตอนแรกของฉันคือการเขียนการเคลื่อนไหวทางกฎหมายสำหรับมัน ดังนั้นใครสามารถชี้ฉันในทิศทางที่ถูกต้องได้หรือไม่? (ฉันใหม่สำหรับ jQuery แต่มีประสบการณ์ในการเขียนโปรแกรมมาก) PS: ฉันไม่ได้พยายามสร้างเครื่องมือที่มีประสิทธิภาพมาก (ฉันรู้ว่ามันยากเกินไป) ฉันแค่อยากทำความคุ้นเคยกับกระบวนการและเรียนรู้เทคนิคใหม่ ๆ ตลอดทาง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.