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

สำหรับคำถามเกี่ยวกับการเขียนโปรแกรมใน ECMAScript (JavaScript / JS) และภาษา / การใช้งานต่างๆ (ไม่รวม ActionScript) แท็กนี้ไม่ค่อยได้ใช้คนเดียว แต่ส่วนใหญ่มักจะเกี่ยวข้องกับแท็ก [node.js], [jquery], [json] และ [html]

4
ลำดับฟังก์ชัน JavaScript: ทำไมถึงมีความสำคัญ?
คำถามเดิม: JSHintบ่นเมื่อ JavaScript ของฉันเรียกใช้ฟังก์ชันที่กำหนดไว้ที่ด้านล่างของหน้ามากกว่าการเรียกใช้ อย่างไรก็ตามหน้าของฉันมีไว้สำหรับเกมและจะไม่มีการเรียกใช้ฟังก์ชันใด ๆ จนกว่าจะดาวน์โหลดทั้งหมด เหตุใดฟังก์ชันคำสั่งจึงปรากฏในรหัสของฉันจึงมีความสำคัญ แก้ไข: ฉันคิดว่าฉันอาจพบคำตอบแล้ว http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting ฉันกำลังคร่ำครวญอยู่ภายใน ดูเหมือนว่าฉันต้องใช้เวลาอีกหนึ่งวันในการสั่งซื้อรหัสหกพันบรรทัดใหม่ เส้นโค้งการเรียนรู้ด้วยจาวาสคริปต์ไม่ได้สูงชัน แต่อย่างใด

19
วิธีการโคลนลึกในจาวาสคริปต์
คุณโคลนวัตถุ Javascript ได้อย่างไร? ฉันรู้ว่ามีฟังก์ชั่นต่าง ๆ ตามเฟรมเวิร์กเช่นJSON.parse(JSON.stringify(o))และ$.extend(true, {}, o)แต่ฉันไม่ต้องการใช้เฟรมเวิร์กแบบนั้น วิธีใดเป็นวิธีที่สง่างามหรือมีประสิทธิภาพที่สุดในการสร้างโคลนลึก เราดูแลเกี่ยวกับ edge case เช่นการโคลนอาร์เรย์ ไม่ทำลายโซ่ต้นแบบจัดการกับการอ้างอิงตัวเอง เราไม่สนใจเกี่ยวกับการสนับสนุนการคัดลอกวัตถุ DOM และชอบเพราะ.cloneNodeมีอยู่ด้วยเหตุผลนั้น เนื่องจากฉันต้องการใช้โคลนลึกเป็นหลักในการnode.jsใช้คุณสมบัติ ES5 ของเครื่องยนต์ V8 เป็นที่ยอมรับ [แก้ไข] ก่อนที่ทุกคนแสดงให้เห็นให้ฉันพูดถึงมีความแตกต่างที่ชัดเจนระหว่างการสร้างสำเนาโดย prototypically สืบทอดจากวัตถุและโคลนมัน อดีตทำให้โซ่ต้นแบบยุ่งเหยิง [แก้ไขเพิ่มเติม] หลังจากอ่านคำตอบของคุณฉันก็ได้พบกับการค้นพบที่น่ารำคาญว่าการโคลนวัตถุทั้งหมดเป็นเกมที่อันตรายและยากมาก ยกตัวอย่างเช่นวัตถุตามการปิดต่อไปนี้ var o = (function() { var magic = 42; var magicContainer = function() { this.get = function() { return magic; …
107 javascript 

3
วิธีรับการจัดส่งอย่างง่ายจาก this.props โดยใช้ connect w / Redux
ฉันมีองค์ประกอบ React ง่ายๆที่ฉันเชื่อมต่อ (การแมปอาร์เรย์ / สถานะอย่างง่ายทับ) เพื่อไม่ให้อ้างอิงบริบทของร้านค้าฉันต้องการวิธี "จัดส่ง" โดยตรงจากอุปกรณ์ประกอบฉาก ฉันเคยเห็นคนอื่นใช้แนวทางนี้ แต่ไม่สามารถเข้าถึงได้ด้วยเหตุผลบางประการ :) นี่คือเวอร์ชันของการพึ่งพา npm แต่ละรายการที่ฉันใช้อยู่ในปัจจุบัน "react": "0.14.3", "react-redux": "^4.0.0", "react-router": "1.0.1", "redux": "^3.0.4", "redux-thunk": "^1.0.2" นี่คือส่วนประกอบที่มีวิธีการเชื่อมต่อ class Users extends React.Component { render() { const { people } = this.props; return ( <div> <div>{this.props.children}</div> <button onClick={() => { this.props.dispatch({type: ActionTypes.ADD_USER, id: …

6
หลีกเลี่ยง Angular2 เพื่อส่งแบบฟอร์มอย่างเป็นระบบเมื่อคลิกปุ่ม
โอเคอาจจะยังไม่ชัดเจน รับแบบฟอร์มนี้: <form (ngSubmit)="submit()" #crisisForm="ngForm"> <input type="text" name="name" [(ngModel)]="crisis.name"> <button type="submit">Submit</button> <button type="button" (click)="preview()">Preview</button> <button type="reset" (click)="reset()">Reset</button> </form> ทำไมปุ่มทั้งหมดจึงเรียกใช้submit()ฟังก์ชันนี้ และจะหลีกเลี่ยงสิ่งนั้นได้อย่างไร?

15
วิธีใดที่ดีที่สุดในการกำหนดจำนวนวันในหนึ่งเดือนด้วย JavaScript
ฉันใช้ฟังก์ชั่นนี้อยู่ แต่อยากรู้ว่าอะไรคือวิธีที่มีประสิทธิภาพและแม่นยำที่สุดในการใช้งาน function daysInMonth(iMonth, iYear) { return 32 - new Date(iYear, iMonth, 32).getDate(); }
107 javascript  date 

6
JavaScript สามารถอัปโหลด Blob ได้อย่างไร?
ฉันมีข้อมูลหยดในโครงสร้างนี้: Blob {type: "audio/wav", size: 655404, slice: function} size: 655404 type: "audio/wav" __proto__: Blob เป็นข้อมูลเสียงที่บันทึกโดยใช้ Chrome getUerMedia()และRecorder.jsล่าสุด ฉันจะอัปโหลดหยดนี้ไปยังเซิร์ฟเวอร์โดยใช้วิธีการโพสต์ของ jquery ได้อย่างไร ฉันได้ลองโดยไม่มีโชค: $.post('http://localhost/upload.php', { fname: "test.wav", data: soundBlob }, function(responseText) { console.log(responseText); });
107 javascript  jquery  html 

18
ตรวจสอบว่าจุดคือที่ดินหรือน้ำใน Google Maps
.. แล้ว Google แผนที่ "แบ่งน่านน้ำจากน่านน้ำ" ไม่ใช่ในแง่พระคัมภีร์ แต่ .. ฉันอยากทราบว่าฉันมีทางเลือกอะไรบ้างเพื่อตรวจสอบว่าจุดของ [Lat, Lon] เป็นที่ดินหรือน้ำ เห็นได้ชัดว่า Google Maps มีข้อมูลนี้ (แหล่งน้ำเป็นสีน้ำเงิน) แต่มีบางอย่างใน API ที่ฉันสามารถใช้เพื่อสิ่งนั้นได้หรือไม่ และถ้าไม่ - พวกเขาไม่ได้ให้บริการเพราะไม่เคยคิดมาก่อนหรือ? หรือเพราะมันซับซ้อนเกินไป? ฉันไม่พบข้อมูลใด ๆ เกี่ยวกับเรื่องนี้ยกเว้นคำถามที่คล้ายกันที่นี่ (เช่นการค้นหาประเภทของภูมิประเทศหรือระดับความสูง - แต่ไม่ใช่สิ่งที่ฉันต้องการ) มีชั้นแยกสำหรับสิ่งนั้นหรือไม่? ตัวเลือก? คำสั่ง? หรือควรไปดำเนินการด้วยตนเอง? วิธีเดียวที่ฉันสามารถคิดว่าจะเข้าถึงสิ่งนี้ได้อย่างไร (ฉันควรจะต้องทำด้วยตนเองหรือไม่) คือตรวจสอบไทล์ที่แสดงทุกรายการเพื่อหาจุดที่แน่นอนจากนั้นตรวจสอบค่า RGB สำหรับเฉดสีแผนที่ Google นั้น นี่เป็นเพียงทฤษฎี - เพราะในทางปฏิบัติ - ฉันไม่รู้ว่าจะทำสิ่งนั้นให้สำเร็จได้อย่างไรอุปสรรคแรกคือฉันไม่รู้ว่าฉันจะแปลงตำแหน่งพิกเซลบนกระเบื้องเป็นจุด [LatLon] ได้อย่างไร โซลูชันสำเร็จรูปจะง่ายกว่ามาก โปรดทราบว่าฉันไม่ต้องการน้ำทั้งหมดในโลก …

4
การจัดเก็บข้อมูลรูปภาพสำหรับเว็บแอปพลิเคชันแบบออฟไลน์ (ฐานข้อมูลการจัดเก็บข้อมูลฝั่งไคลเอ็นต์)
ฉันมีแอปพลิเคชันเว็บออฟไลน์โดยใช้ appcaching ฉันต้องให้ข้อมูลประมาณ 10MB - 20MB ที่จะบันทึก (ฝั่งไคลเอ็นต์) ซึ่งประกอบด้วยไฟล์ภาพ PNG เป็นหลัก การดำเนินการมีดังนี้: ดาวน์โหลดและติดตั้งแอปพลิเคชันบนเว็บใน appcache (ใช้รายการ) คำขอเว็บแอปจากไฟล์ข้อมูล PNG ของเซิร์ฟเวอร์ (อย่างไร - ดูทางเลือกอื่นด้านล่าง) บางครั้งเว็บแอปจะซิงค์กับเซิร์ฟเวอร์และทำการอัปเดต / ลบ / เพิ่มเติมบางส่วนในฐานข้อมูล PNG FYI: เซิร์ฟเวอร์เป็นเซิร์ฟเวอร์ JSON REST ที่สามารถวางไฟล์ใน wwwroot เพื่อรับได้ นี่คือการวิเคราะห์ "ฐานข้อมูล" แบบไคลเอ็นต์ในปัจจุบันของฉันที่จัดการพื้นที่จัดเก็บไบนารี Blob ดูอัปเดตที่ด้านล่าง AppCache (ผ่านรายการเพิ่ม PNG ทั้งหมดแล้วอัปเดตตามต้องการ) CON: การเปลี่ยนแปลงใด ๆ ของรายการฐานข้อมูล PNG จะหมายถึงการดาวน์โหลดรายการทั้งหมดในไฟล์ Manifest …

11
จะรับรูปแบบการป้อนข้อมูลได้อย่างไร?
ฉันต้องการได้รับการอ้างอิงถึงแม่แบบฟอร์มของ INPUT เมื่อฉันมีการอ้างอิงถึง INPUT นั้นเท่านั้น เป็นไปได้ด้วย JavaScript หรือไม่? ใช้ jQuery ถ้าคุณต้องการ function doSomething(element) { //element is input object //how to get reference to form? } สิ่งนี้ใช้ไม่ได้: var form = $(element).parents('form:first'); alert($(form).attr("name"));

5
เปรียบเทียบ 2 สตริงตามตัวอักษรเพื่อวัตถุประสงค์ในการจัดเรียง
ฉันกำลังพยายามเปรียบเทียบ 2 สตริงตามตัวอักษรเพื่อจุดประสงค์ในการเรียงลำดับ if('aaaa' < 'ab')ยกตัวอย่างเช่นผมต้องการที่จะมีการตรวจสอบเช่นบูล ฉันลองแล้ว แต่มันไม่ได้ผลลัพธ์ที่ถูกต้องดังนั้นฉันเดาว่านั่นไม่ใช่ไวยากรณ์ที่ถูกต้อง ฉันจะทำสิ่งนี้ใน jquery หรือ Javascript ได้อย่างไร
107 javascript  jquery 

8
ฉันจะส่งพารามิเตอร์พิเศษไปยังฟังก์ชันการเรียกกลับในวิธี Javascript .filter () ได้อย่างไร
ฉันต้องการเปรียบเทียบแต่ละสตริงใน Array กับสตริงที่กำหนด การใช้งานปัจจุบันของฉันคือ: function startsWith(element) { return element.indexOf(wordToCompare) === 0; } addressBook.filter(startsWith); ฟังก์ชันง่ายๆนี้ใช้งานได้ แต่เนื่องจากตอนนี้wordToCompareถูกตั้งค่าเป็นตัวแปรส่วนกลาง แต่แน่นอนว่าฉันต้องการหลีกเลี่ยงสิ่งนี้และส่งผ่านเป็นพารามิเตอร์ ปัญหาของฉันคือฉันไม่แน่ใจว่าจะกำหนดstartWith () อย่างไรดังนั้นจึงยอมรับพารามิเตอร์พิเศษหนึ่งตัวเนื่องจากฉันไม่เข้าใจจริงๆว่าพารามิเตอร์เริ่มต้นจะส่งผ่านอย่างไร ฉันได้ลองวิธีต่างๆทั้งหมดที่ฉันคิดได้และไม่มีวิธีใดได้ผล หากคุณสามารถอธิบายได้ว่าพารามิเตอร์ที่ส่งผ่านไปยังฟังก์ชันการโทรกลับ 'ในตัว' (ขออภัยฉันไม่รู้คำศัพท์ที่ดีกว่าสำหรับสิ่งเหล่านี้) ทำงานได้ดีเพียงใด

16
สลับคีย์ด้วยค่า JSON
ฉันมีออบเจ็กต์ JSON ขนาดใหญ่มากที่มีโครงสร้างดังนี้: {A : 1, B : 2, C : 3, D : 4} ฉันต้องการฟังก์ชั่นที่สามารถสลับค่าด้วยคีย์ในวัตถุของฉันและฉันไม่รู้จะทำอย่างไร ฉันต้องการผลลัพธ์เช่นนี้: {1 : A, 2 : B, 3 : C, 4 : D} มีวิธีใดบ้างที่ฉันสามารถทำได้เพื่อสร้างวัตถุใหม่ด้วยตนเองที่มีการสลับทุกอย่าง ขอบคุณ

22
จะทราบได้อย่างไรว่าสองอาร์เรย์มีค่าเท่ากัน
ฉันมีสองอาร์เรย์: อันหนึ่งเต็มไปด้วยข้อมูลจากคำขอ ajax และอีกอันเก็บปุ่มที่ผู้ใช้คลิก ฉันใช้รหัสนี้ (ฉันกรอกตัวเลขตัวอย่าง): var array1 = [2, 4]; var array2 = [4, 2]; //It cames from the user button clicks, so it might be disordered. array1.sort(); //Sorts both Ajax and user info. array2.sort(); if (array1==array2) { doSomething(); }else{ doAnotherThing(); } แต่จะให้เสมอfalseแม้ว่าทั้งสองอาร์เรย์จะเหมือนกัน แต่มีชื่อต่างกัน (ฉันตรวจสอบสิ่งนี้ในคอนโซล JS ของ Chrome) ดังนั้นมีวิธีใดบ้างที่ฉันจะทราบได้ว่าอาร์เรย์ทั้งสองนี้มีอาร์เรย์เหมือนกัน …

4
ส่งผ่านอุปกรณ์ประกอบฉากแบบไดนามิกไปยังองค์ประกอบไดนามิกใน VueJS
ฉันมีมุมมองแบบไดนามิก: <div id="myview"> <div :is="currentComponent"></div> </div> กับอินสแตนซ์ Vue ที่เกี่ยวข้อง: new Vue ({ data: function () { return { currentComponent: 'myComponent', } }, }).$mount('#myview'); สิ่งนี้ทำให้ฉันสามารถเปลี่ยนองค์ประกอบได้แบบไดนามิก ในกรณีของฉันฉันมีสามองค์ประกอบที่แตกต่างกันmyComponent, และmyComponent1 myComponent2และฉันสลับระหว่างพวกเขาดังนี้: Vue.component('myComponent', { template: "<button @click=\"$parent.currentComponent = 'myComponent1'\"></button>" } myComponent1ตอนนี้ผมต้องการที่จะผ่านไปยังอุปกรณ์ประกอบฉาก ฉันจะส่งอุปกรณ์ประกอบฉากเหล่านี้ได้อย่างไรเมื่อฉันเปลี่ยนประเภทส่วนประกอบเป็นmyComponent1?

4
สตริง Javascript Split บนอักขระ UpperCase
คุณแยกสตริงออกเป็นอาร์เรย์ใน Javascript ด้วยอักขระ UpperCase ได้อย่างไร ดังนั้นฉันต้องการแยก: 'ThisIsTheStringToSplit' เป็น ('This', 'Is', 'The', 'String', 'To', 'Split')
107 javascript 

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