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

5
มีเหตุผลใดที่จะใช้คำหลัก“ var” ใน ES6?
คำแนะนำของ Babel สำหรับ ES6พูดว่า: letvarเป็นใหม่ เห็นได้ชัดว่าแตกต่างเพียงว่าvarได้รับการกำหนดขอบเขตในปัจจุบันฟังก์ชั่นในขณะที่letได้รับการกำหนดขอบเขตในปัจจุบันบล็อก มีตัวอย่างที่ดีใน คำตอบนี้ ฉันไม่เห็นเหตุผลที่จะใช้varในรหัส ES6 แม้ว่าคุณต้องการกำหนดขอบเขตตัวแปรที่กำหนดให้กับฟังก์ชันทั้งหมดคุณสามารถทำได้ด้วยletการใส่การประกาศที่ด้านบนของบล็อกฟังก์ชันซึ่งเป็นสิ่งที่คุณควรทำด้วยvarอย่างไรก็ตามเพื่อระบุขอบเขตที่แท้จริง และถ้าคุณต้องการกำหนดขอบเขตบางสิ่งให้ละเอียดยิ่งขึ้นในforบล็อกหรือบางอย่างคุณก็สามารถทำได้เช่นกัน ดังนั้นสัญชาตญาณของฉันคือหยุดใช้varทั้งหมดเมื่อเขียนรหัส ES6 คำถามของฉันคือฉันผิดเกี่ยวกับเรื่องนี้? มีกรณีที่ถูกต้องตามกฎหมายที่varจะได้รับความนิยมมากกว่าlet?
261 javascript  es6 

6
ฉันควรใช้ 'let' vs 'const' ใน ES6 มากแค่ไหน
ฉันเขียนรหัส ES6 จำนวนมากสำหรับ io.js เมื่อเร็ว ๆ นี้ มีโค้ดไม่มากนักในการเรียนรู้ดังนั้นฉันรู้สึกเหมือนว่าฉันกำหนดอนุสัญญาของตัวเองเมื่อฉันไป คำถามของฉันเป็นเรื่องเกี่ยวกับเวลาที่จะใช้VSconstlet constฉันได้รับการใช้กฎนี้ถ้าเป็นไปได้ใช้ ใช้เฉพาะletเมื่อคุณรู้ว่าค่าจำเป็นต้องเปลี่ยนแปลง (คุณสามารถย้อนกลับและเปลี่ยน a เป็นconsta letได้ในภายหลังหากคุณต้องการเปลี่ยนค่าของมันในภายหลัง) เหตุผลหลักสำหรับกฎนี้คือมันง่ายที่จะใช้อย่างสม่ำเสมอ ไม่มีพื้นที่สีเทา สิ่งที่เป็นเมื่อฉันใช้กฎนี้ในทางปฏิบัติ 95% constของการประกาศของฉัน และนี่ดูแปลกสำหรับฉัน ฉันแค่ใช้letสำหรับสิ่งต่าง ๆiในforวงหรือบางครั้งสำหรับสิ่งต่าง ๆ เช่นผลรวมสะสมฟีโบนักชี (ซึ่งไม่ได้เกิดขึ้นมากในชีวิตจริง) ฉันรู้สึกประหลาดใจกับสิ่งนี้ - ปรากฎ 95% ของ 'ตัวแปร' ในรหัส ES5 ของฉันจนถึงปัจจุบันเป็นค่าที่ไม่เปลี่ยนแปลง แต่การเห็นconstรหัสของฉันทั่วรู้สึกผิดอย่างใด ดังนั้นคำถามของฉันคือ: ตกลงไหมที่จะใช้constสิ่งนี้มาก? ฉันควรจะทำสิ่งต่าง ๆ เช่นconst foo = function () {...};? หรือฉันควรสำรองconstไว้สำหรับสถานการณ์แบบนั้นซึ่งคุณกำลังเขียนโค้ดที่ด้านบนของโมดูลอย่างหนัก - แบบที่คุณทำในรูปแบบเต็มแคปเช่นconst MARGIN_WIDTH …
214 javascript  es6 

3
จุดใดในการใช้ ES6 Map เมื่อคีย์เป็นสตริงทั้งหมด?
ปุ่มวัตถุธรรมดาจะต้องเป็นสตริงในขณะที่Mapสามารถมีกุญแจประเภทใด ๆ แต่ฉันมีประโยชน์เล็กน้อยในทางปฏิบัติ ในเกือบทุกกรณีฉันพบว่าตัวเองใช้สตริงเป็นกุญแจอยู่ดี และสันนิษฐานว่าจะช้ากว่าnew Map() {}มีเหตุผลอื่นอีกไหมทำไมจึงควรใช้Mapวัตถุธรรมดาแทนดีกว่า

1
แตกต่างระหว่าง ES6 และ Javascript [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ES6 คืออะไร มันเป็นจาวาสคริปต์หรือไม่ หรือผู้สนับสนุนหลายภาษา ฉันค้นหา แต่ไม่สามารถเข้าใจได้โดยเฉพาะอย่างยิ่งหน้าใน Wikipedia มันดีกว่า Javascript หรือเปล่า? และฉันจะทำอย่างไรในการพัฒนาเว็บไซต์ด้วยภาษานี้ ดังนั้น ES6 คืออะไรและฉันจะใช้มันอย่างไรในการพัฒนาแอปพลิเคชันบนเว็บของฉัน
18 javascript  es6 

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

2
เหตุใดจึงใช้ `const foo = () => {}` แทนที่จะเป็น `function foo () {} '
ตัวอย่างเช่นในวิดีโอ Reduxนี้ผู้สอนมักใช้ไวยากรณ์เช่น const counter = (state=0, action) => { ... function body here } ฉันจะใช้ "ดั้งเดิม" แค่ไหน function counter(state=0, action) { ... function body here } ซึ่งสั้นกว่าจริงๆและ IMO จะชัดเจนขึ้น มันง่ายกว่าที่จะสแกนขอบซ้ายที่เป็นธรรมและมีโครงสร้างของหน้าสำหรับคำว่า "ฟังก์ชั่น" มากกว่าการสแกนขอบด้านขวาที่เป็นเศษเล็กเศษน้อยสำหรับขนาดเล็ก "=>" นอกเหนือจากthisและพยายามที่จะมีวัตถุประสงค์ไม่ใช่ความเห็นมีความแตกต่างหรือประโยชน์ที่เป็นประโยชน์ต่อไวยากรณ์ newfangled หรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.