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

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

10
การทำให้ความเร็ว mousewheel ในเบราว์เซอร์เป็นปกติ
สำหรับคำถามอื่นฉันได้รวบรวมคำตอบนี้รวมถึงโค้ดตัวอย่างนี้ด้วย ในรหัสนั้นฉันใช้ล้อเมาส์เพื่อซูมเข้า / ออกจากผ้าใบ HTML5 ฉันพบรหัสบางอย่างที่ทำให้ความเร็วแตกต่างกันตามปกติระหว่าง Chrome และ Firefox อย่างไรก็ตามการจัดการการซูมใน Safari นั้นเร็วกว่าในทั้งสองอย่างมาก นี่คือรหัสที่ฉันมีในปัจจุบัน: var handleScroll = function(e){ var delta = e.wheelDelta ? e.wheelDelta/40 : e.detail ? -e.detail/3 : 0; if (delta) ... return e.preventDefault() && false; }; canvas.addEventListener('DOMMouseScroll',handleScroll,false); // For Firefox canvas.addEventListener('mousewheel',handleScroll,false); // Everyone else ฉันสามารถใช้รหัสใดในการรับค่า 'เดลต้า' ที่เหมือนกันสำหรับปริมาณล้อเมาส์ที่เท่ากันใน Chrome v10 …

18
วิธีการซ่อนรหัสจากเซลล์ในสมุดบันทึก ipython ที่แสดงด้วย nbviewer?
ฉันมีสมุดบันทึก ipython / jupyter ที่ฉันเห็นภาพโดยใช้ NBviewer ฉันจะซ่อนรหัสทั้งหมดจากสมุดบันทึกที่แสดงโดย NBviewer ดังนั้นเฉพาะผลลัพธ์ของรหัส (เช่นพล็อตและตาราง) และเซลล์ markdown เท่านั้นที่จะแสดง

15
ฉันจะคำนวณวันที่ใน JavaScript สามเดือนก่อนวันนี้ได้อย่างไร
ฉันกำลังพยายามสร้างวันที่ซึ่งเป็น 3 เดือนก่อนวันที่ปัจจุบัน ฉันได้รับเดือนปัจจุบันตามรหัสด้านล่าง var currentDate = new Date(); var currentMonth = currentDate.getMonth()+1; พวกคุณช่วยบอกตรรกะให้ฉันในการคำนวณและจัดรูปแบบวันที่ (วัตถุDateประเภทข้อมูล) โดยพิจารณาว่าเมื่อเดือนคือมกราคม (1) 3 เดือนก่อนวันที่จะเป็น OCtober (10)
147 javascript  date 

19
แปลงสตริงเป็นสตริงแม่แบบ
เป็นไปได้ไหมที่จะสร้างเทมเพลตสตริงเป็นสตริงปกติ let a="b:${b}"; แล้วแปลงเป็นสตริงแม่แบบ let b=10; console.log(a.template());//b:10 โดยไม่ต้องeval, new Functionและวิธีการอื่น ๆ ของการสร้างรหัสแบบไดนามิก?

6
การเข้าถึงคุณสมบัติของ MVC จาก Javascript
ฉันมีโมเดลต่อไปนี้ซึ่งรวมอยู่ในโมเดลมุมมองของฉัน public class FloorPlanSettingsModel { public int Id { get; set; } public int? MainFloorPlanId { get; set; } public string ImageDirectory { get; set; } public string ThumbnailDirectory { get; set; } public string IconsDirectory { get; set; } } ฉันจะเข้าถึงหนึ่งในคุณสมบัติข้างต้นจาก Javascript ได้อย่างไร ฉันลองสิ่งนี้ แต่ได้ "ไม่ได้กำหนด" var floorplanSettings = …

12
แยกวิเคราะห์วันที่โดยไม่มีเขตเวลาจาวาสคริปต์
ฉันต้องการแยกวันที่โดยไม่มีเขตเวลาใน JavaScript ฉันเหนื่อย: new Date(Date.parse("2005-07-08T00:00:00+0000")); ส่งคืนวันศุกร์ 7 ก.ค. 2548 02:00:00 GMT + 0200 (เวลามาตรฐานยุโรปกลาง) new Date(Date.parse("2005-07-08 00:00:00 GMT+0000")); ส่งคืนผลลัพธ์เดียวกัน new Date(Date.parse("2005-07-08 00:00:00 GMT-0000")); ส่งคืนผลลัพธ์เดียวกัน ฉันต้องการแยกเวลา: ไม่มีโซนเวลา โดยไม่ต้องเรียก constructor Date.UTC หรือ Date ใหม่ (ปี, เดือน, วัน) เพียงแค่ส่งสตริงเข้าไปในตัวสร้าง Date (โดยไม่ต้องเข้าใกล้ต้นแบบ) ฉันมีกับผลิตภัณฑ์วัตถุไม่ได้DateString

16
ใน reactJS จะคัดลอกข้อความไปยังคลิปบอร์ดได้อย่างไร?
ฉันใช้ ReactJS และเมื่อผู้ใช้คลิกลิงก์ฉันต้องการคัดลอกข้อความไปยังคลิปบอร์ด ฉันใช้ Chrome 52 และฉันไม่จำเป็นต้องสนับสนุนเบราว์เซอร์อื่น ๆ ฉันไม่เห็นสาเหตุที่รหัสนี้ไม่ส่งผลให้ข้อมูลถูกคัดลอกไปยังคลิปบอร์ด (ที่มาของข้อมูลโค้ดนั้นมาจากโพสต์ Reddit) ฉันทำสิ่งนี้ผิดหรือเปล่า? ใครสามารถแนะนำมีวิธี "ถูกต้อง" เพื่อใช้คัดลอกไปยังคลิปบอร์ดโดยใช้ reactjs? copyToClipboard = (text) => { console.log('text', text) var textField = document.createElement('textarea') textField.innerText = text document.body.appendChild(textField) textField.select() document.execCommand('copy') textField.remove() }

17
ตรวจสอบว่ามีค่าวัตถุอยู่ในอาร์เรย์ Javascript ของวัตถุหรือไม่และไม่เพิ่มวัตถุใหม่ลงในอาร์เรย์
ถ้าฉันมีอาร์เรย์ของวัตถุต่อไปนี้: [ { id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 2, username: 'ted' } ] มีวิธีวนลูปผ่านอาร์เรย์เพื่อตรวจสอบว่ามีค่าชื่อผู้ใช้เฉพาะอยู่แล้วหรือไม่และไม่ทำอะไรเลย แต่ถ้าไม่เพิ่มวัตถุใหม่ในอาร์เรย์ด้วยชื่อผู้ใช้ดังกล่าว (และ ID ใหม่) ขอบคุณ!


14
Enums ใน Javascript กับ ES6
ฉันกำลังสร้างโปรเจ็กต์ Java เก่าใน Javascript และตระหนักว่าไม่มีวิธีที่ดีในการทำ enums ใน JS สิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือ: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); การconstเก็บรักษาไม่ให้Colorsถูกกำหนดใหม่และการแช่แข็งจะป้องกันไม่ให้คีย์และค่ากลายพันธุ์ ฉันใช้ Symbols Colors.REDไม่เท่ากับ0หรืออย่างอื่นนอกจากตัวมันเอง สูตรนี้มีปัญหาหรือไม่? มีวิธีที่ดีกว่า? (ฉันรู้ว่าคำถามนี้ค่อนข้างซ้ำ แต่Q / As ก่อนหน้านี้ทั้งหมดค่อนข้างเก่าและ ES6 ทำให้เรามีความสามารถใหม่ ๆ ) แก้ไข: อีกวิธีหนึ่งที่เกี่ยวข้องกับปัญหาการทำให้เป็นอนุกรม แต่ฉันเชื่อว่ายังมีปัญหาเรื่องขอบเขต const enumValue = (name) => Object.freeze({toString: () => name}); const Colors …

3
ความแตกต่างระหว่าง microtask และ macrotask ภายในบริบทของเหตุการณ์
ฉันเพิ่งอ่านข้อกำหนด Promises / A + เสร็จแล้วและสะดุดกับคำว่า microtask และ macrotask: ดูที่http://promisesaplus.com/#notes ฉันไม่เคยได้ยินคำศัพท์เหล่านี้มาก่อนและตอนนี้ฉันสงสัยว่าความแตกต่างคืออะไร? ฉันพยายามค้นหาข้อมูลบางอย่างบนเว็บแล้ว แต่ทั้งหมดที่ฉันพบคือโพสต์นี้จากคลังเก็บ w3.org (ซึ่งไม่ได้อธิบายความแตกต่างให้ฉัน): http://lists.w3.org/Archives /Public/public-nextweb/2013Jul/0018.html นอกจากนี้ฉันพบโมดูล npm ที่เรียกว่า "macrotask": https://www.npmjs.org/package/macrotask อีกครั้งยังไม่มีการชี้แจงว่าความแตกต่างคืออะไรกันแน่ สิ่งที่ฉันรู้ก็คือมันมีบางอย่างเกี่ยวข้องกับการวนซ้ำของเหตุการณ์ดังที่อธิบายไว้ในhttps://html.spec.whatwg.org/multipage/webappapis.html#task-queue และhttps: //html.spec.whatwg .org / multipage / webappapis.html # perform-a-microtask-จุดตรวจ ฉันรู้ว่าในทางทฤษฎีฉันควรจะสามารถดึงความแตกต่างออกมาได้ด้วยตัวเองตามข้อกำหนด WHATWG นี้ แต่ฉันแน่ใจว่าคนอื่น ๆ ก็อาจได้รับประโยชน์เช่นกันจากคำอธิบายสั้น ๆ ที่ผู้เชี่ยวชาญให้มา

10
ลบ Last Comma ออกจากสตริง
การใช้ JavaScript ฉันจะลบเครื่องหมายจุลภาคสุดท้ายได้อย่างไร แต่ถ้าลูกน้ำเป็นอักขระสุดท้ายหรือมีช่องว่างหลังเครื่องหมายจุลภาคเท่านั้น นี่คือรหัสของฉัน ฉันมีซอที่ใช้งานได้ แต่มันมีจุดบกพร่อง var str = 'This, is a test.'; alert( removeLastComma(str) ); // should remain unchanged var str = 'This, is a test,'; alert( removeLastComma(str) ); // should remove the last comma var str = 'This is a test, '; alert( removeLastComma(str) ); // should …
147 javascript 

5
ทำไม arr = [] เร็วกว่า arr = new Array
ฉันรันรหัสนี้และได้ผลลัพธ์ด้านล่าง ฉันอยากรู้ว่าทำไม[]เร็วขึ้น console.time('using[]') for(var i=0; i<200000; i++){var arr = []}; console.timeEnd('using[]') console.time('using new') for(var i=0; i<200000; i++){var arr = new Array}; console.timeEnd('using new') ใช้[]: 299ms ใช้new: 363 มิลลิวินาที ขอบคุณRaynosที่นี่เป็นเกณฑ์มาตรฐานของรหัสนี้และวิธีที่เป็นไปได้ในการกำหนดตัวแปร

7
Chrome ปฏิเสธที่จะเรียกใช้งานสคริปต์ AJAX เนื่องจากประเภท MIME ผิด
ฉันพยายามเข้าถึงสคริปต์ในฐานะ JSON ผ่าน AJAX ซึ่งทำงานได้ดีบน Safari และเบราว์เซอร์อื่น ๆ แต่น่าเสียดายที่จะไม่ทำงานใน Chrome มันมาพร้อมกับข้อผิดพลาดดังต่อไปนี้: ปฏิเสธที่จะเรียกใช้งานสคริปต์จาก '*' เนื่องจากประเภท MIME ('application / json') ไม่สามารถใช้งานได้และการตรวจสอบประเภท MIME ที่เข้มงวดถูกเปิดใช้งาน นี่คือคำขอ: $.ajax({ url: "http://some_url/test.json?callback=?", type: "GET", dataType: 'json', cache: true, success: function (data, status, error) { console.log('success', data); }, error: function (data, status, error) { console.log('error', data, status, error); …

11
ฉันจะทำให้ console.log แสดงสถานะปัจจุบันของวัตถุได้อย่างไร
ใน Safari ที่ไม่มีส่วนเสริม (และเบราว์เซอร์อื่น ๆ ส่วนใหญ่) console.logจะแสดงวัตถุที่สถานะสุดท้ายของการดำเนินการไม่ใช่ที่สถานะเมื่อconsole.logถูกเรียก ฉันต้องโคลนวัตถุเพื่อเอาท์พุทผ่านconsole.logเพื่อให้ได้สถานะของวัตถุที่บรรทัดนั้น ตัวอย่าง: var test = {a: true} console.log(test); // {a: false} test.a = false; console.log(test); // {a: false}

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