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

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

10
การใช้ระบบไฟล์ใน node.js ด้วย async / await
ฉันต้องการใช้ async / await กับการทำงานของระบบไฟล์บางอย่าง โดยปกติ async / await ทำงานได้ดีเพราะฉันใช้babel-plugin-syntax-async-functionsไฟล์. แต่ด้วยรหัสนี้ฉันพบใน if case ที่namesไม่ได้กำหนด: import fs from 'fs'; async function myF() { let names; try { names = await fs.readdir('path/to/dir'); } catch (e) { console.log('e', e); } if (names === undefined) { console.log('undefined'); } else { console.log('First Name', names[0]); } …


8
ทำไม isNaN (null) == false ใน JS?
โค้ดนี้ใน JS ทำให้ฉันมีป๊อปอัปขึ้นมาว่า "ฉันคิดว่าโมฆะเป็นตัวเลข" ซึ่งฉันรู้สึกว่ารบกวนเล็กน้อย ฉันขาดอะไรไป? if (isNaN(null)) { alert("null is not a number"); } else { alert("i think null is a number"); } เรียกใช้ข้อมูลโค้ดซ่อนผลลัพธ์ขยายข้อมูลโค้ด ฉันใช้ Firefox 3 นั่นเป็นบั๊กของเบราว์เซอร์หรือไม่? การทดสอบอื่น ๆ : console.log(null == NaN); // false console.log(isNaN("text")); // true console.log(NaN == "text"); // false เรียกใช้ข้อมูลโค้ดซ่อนผลลัพธ์ขยายข้อมูลโค้ด ดังนั้นปัญหาดูเหมือนจะไม่ใช่การเปรียบเทียบกับ NaN อย่างแน่นอน? แก้ไข:ตอนนี้คำถามได้รับคำตอบแล้วฉันได้ทำความสะอาดโพสต์ของฉันเพื่อให้มีเวอร์ชันที่ดีขึ้นสำหรับที่เก็บถาวร …
130 javascript 


6
การเรียกโค้ด webpacked จากภายนอก (แท็กสคริปต์ HTML)
สมมติว่าฉันมีคลาสเช่นนี้ (เขียนด้วย typescript) และฉันรวมกับ webpack ไว้ในbundle.jsไฟล์. export class EntryPoint { static run() { ... } } ใน index.html ของฉันฉันจะรวมบันเดิลไว้ แต่ฉันก็อยากจะเรียกว่าวิธีการคงที่ <script src="build/bundle.js"></script> <script> window.onload = function() { EntryPoint.run(); } </script> อย่างไรก็ตามEntryPointไม่ได้กำหนดไว้ในกรณีนี้ ฉันจะเรียกจาวาสคริปต์ที่รวมมาจากสคริปต์อื่นได้อย่างไร เพิ่ม : ไฟล์กำหนดค่าWebpack

2
การส่ง websocket ping / pong frame จากเบราว์เซอร์
ฉันอ่านเกี่ยวกับข้อความ ping / pong ใน websockets เพื่อให้การเชื่อมต่อมีชีวิตอยู่ แต่ฉันไม่แน่ใจว่ามันคืออะไร เป็นประเภทเฟรมที่แตกต่างกันหรือไม่? (ฉันไม่เห็นวิธีการใด ๆ บนวัตถุ javascript WebSocket ใน Chrome ที่เกี่ยวข้องกับปิงปอง) หรือเป็นเพียงรูปแบบการออกแบบ (เช่นฉันส่ง "ping" หรือสตริงอื่น ๆ ไปยังเซิร์ฟเวอร์และให้มันตอบสนอง) ปิงปองเกี่ยวข้องกับเฟรมต่อเนื่องหรือไม่? เหตุผลที่ฉันถามคือฉันใช้เฟรมเวิร์ก python ที่ทำงานหลัง Mongrel2 ดังนั้นฉันจึงสงสัยว่ามีวิธีส่ง Mongrel2 ข้อความ ping / pong เฉพาะที่จะบอกให้การเชื่อมต่อยังคงมีชีวิตอยู่โดยที่แอพ python ของฉันไม่จำเป็นต้อง กังวลเกี่ยวกับมัน ฉันเดาว่าคล้ายกับการมีวิธี HTTP แยกต่างหาก และฉันคิดว่ากรอบข้อความ ping / pong เฉพาะอาจจะง่ายกว่า (โหลดบนเซิร์ฟเวอร์และเครือข่ายน้อยกว่า) กว่าสตริง "ping" แม้ว่านั่นอาจจะไม่สำคัญมากนัก …

6
จะหลีกเลี่ยงสตริง JSON เพื่อให้มีอยู่ใน URL ได้อย่างไร
ใช้ Javascript ฉันต้องการสร้างลิงก์ไปยังเพจ พารามิเตอร์ไปยังเพจอยู่ในอาร์เรย์ Javascript ที่ฉันทำให้เป็นอนุกรมใน JSON ดังนั้นฉันต้องการสร้าง URL แบบนั้น: http://example.com/?data="MY_JSON_ARRAY_HERE" ฉันต้องหลีกเลี่ยงสตริง JSON ของฉัน (อาร์เรย์แบบอนุกรม) เพื่อรวมเป็นพารามิเตอร์ใน URL ได้อย่างไร หากมีวิธีแก้ปัญหาโดยใช้ JQuery ฉันจะชอบมัน หมายเหตุ: ใช่พารามิเตอร์ของเพจต้องอยู่ในอาร์เรย์เนื่องจากมีจำนวนมาก ฉันคิดว่าฉันจะใช้ bit.ly เพื่อย่อลิงค์ในภายหลัง

5
วิธีส่งออบเจ็กต์ JSON โดยใช้ข้อมูลแบบฟอร์ม html
ดังนั้นฉันจึงมีรูปแบบ HTML นี้: <html> <head><title>test</title></head> <body> <form action="myurl" method="POST" name="myForm"> <p><label for="first_name">First Name:</label> <input type="text" name="first_name" id="fname"></p> <p><label for="last_name">Last Name:</label> <input type="text" name="last_name" id="lname"></p> <input value="Submit" type="submit" onclick="submitform()"> </form> </body> </html> วิธีใดเป็นวิธีที่ง่ายที่สุดในการส่งข้อมูลของฟอร์มนี้เป็นออบเจ็กต์ JSON ไปยังเซิร์ฟเวอร์ของฉันเมื่อผู้ใช้คลิกที่ส่ง อัปเดต: ฉันไปไกลถึงจุดนี้แล้ว แต่ดูเหมือนจะไม่ได้ผล: <script type="text/javascript"> function submitform(){ alert("Sending Json"); var xhr = new XMLHttpRequest(); xhr.open(form.method, form.action, …
130 javascript  jquery  html  json  forms 

20
ฉันจะจับการตอบสนองของ form.submit ได้อย่างไร
ฉันมีรหัสต่อไปนี้: <script type="text/javascript"> function SubmitForm() { form1.submit(); } function ShowResponse() { } </script> . . . <div> <a href="#" onclick="SubmitForm();">Click</a> </div> ฉันต้องการจับการตอบสนอง html ของform1.submit? ฉันต้องทำอย่างไร ฉันสามารถลงทะเบียนฟังก์ชันการโทรกลับไปยังเมธอด form1.submit ได้หรือไม่

5
เหตุใดฟังก์ชันอะซิงโครนัสของฉันจึงส่งคืน Promise {<pending>} แทนที่จะเป็นค่า
รหัสของฉัน: let AuthUser = data =&gt; { return google.login(data.username, data.password).then(token =&gt; { return token } ) } และเมื่อฉันพยายามเรียกใช้สิ่งนี้: let userToken = AuthUser(data) console.log(userToken) ฉันได้รับ: Promise { &lt;pending&gt; } แต่ทำไม? เป้าหมายหลักของฉันคือการได้รับโทเค็นgoogle.login(data.username, data.password)ซึ่งส่งคืนสัญญาเป็นตัวแปร จากนั้นให้ดำเนินการบางอย่างล่วงหน้า

17
แปลง JS Object เป็นข้อมูลในรูปแบบ
ฉันจะแปลง JS Object เป็นได้FormDataอย่างไร เหตุผลที่ฉันต้องการทำสิ่งนี้คือฉันมีวัตถุที่ฉันสร้างจากค่าฟิลด์ฟอร์ม ~ 100 var item = { description: 'Some Item', price : '0.00', srate : '0.00', color : 'red', ... ... } ตอนนี้ผมขอให้เพิ่มฟังก์ชั่นการอัปโหลดไฟล์ไปยังรูปแบบของฉันซึ่งของหลักสูตรเป็นไปไม่ได้ผ่าน JSON FormDataและดังนั้นผมกำลังวางแผนในการที่จะย้ายไป มีวิธีใดบ้างที่ฉันสามารถแปลงวัตถุ JS ของฉันเป็นFormData?

3
วิธีโพสต์ไฟล์จากแบบฟอร์มด้วย Axios
การใช้ HTML ดิบเมื่อฉันโพสต์ไฟล์ไปยังเซิร์ฟเวอร์ flask โดยใช้สิ่งต่อไปนี้ฉันสามารถเข้าถึงไฟล์จากคำขอ flask global: &lt;form id="uploadForm" action='upload_file' role="form" method="post" enctype=multipart/form-data&gt; &lt;input type="file" id="file" name="file"&gt; &lt;input type=submit value=Upload&gt; &lt;/form&gt; ในขวด: def post(self): if 'file' in request.files: .... เมื่อฉันพยายามทำเช่นเดียวกันกับ Axios คำขอ flask global ว่างเปล่า: &lt;form id="uploadForm" enctype="multipart/form-data" v-on:change="uploadFile"&gt; &lt;input type="file" id="file" name="file"&gt; &lt;/form&gt; uploadFile: function (event) { const file …

9
jQuery: รอ / หน่วงเวลา 1 วินาทีโดยไม่ต้องใช้รหัส
ฉันไม่สามารถใช้.delayวิธีการใน jQuery ได้: $.delay(3000); // not working $(queue).delay(3000); // not working ฉันใช้การวนรอบสักครู่เพื่อรอจนกว่าค่าการเปลี่ยนแปลงที่ไม่สามารถควบคุมได้จะมากกว่าหรือเท่ากับค่าอื่นและฉันไม่สามารถหาวิธีที่จะแฮ็กการดำเนินการเป็นเวลา X วินาที

6
จะอัพเดต bower.json ด้วยแพ็คเกจที่ติดตั้งได้อย่างไร
ในโครงการของฉันฉันได้ติดตั้งbowerส่วนประกอบโดยไม่บันทึกตัวเลือก ตอนนี้ฉันต้องการอัปเดตเป็นbower.jsonหรือไม่ ฉันจะอัพเดต bower.json ด้วยแพ็คเกจที่ติดตั้งได้อย่างไร

11
แม็พผ่านคีย์การถุกรักษาวัตถุ
mapฟังก์ชั่นใน underscore.js ถ้าเรียกว่ามีวัตถุจาวาสคริปต์กลับอาร์เรย์ของค่าแมปจากค่าของวัตถุที่ _.map({one: 1, two: 2, three: 3}, function(num, key){ return num * 3; }); =&gt; [3, 6, 9] มีวิธีที่จะทำให้มันรักษากุญแจหรือไม่? เช่นฉันต้องการฟังก์ชั่นที่ส่งกลับ {one: 3, two: 6, three: 9}

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