由值刪除陣列元素,以下是一個簡單的方式擴展 javascript prototype,試試!!
Refrance:
https://stackoverflow.com/a/60989209/6784662
https://stackoverflow.com/a/10517081/6784662
[……]
由值刪除陣列元素,以下是一個簡單的方式擴展 javascript prototype,試試!!
Refrance:
https://stackoverflow.com/a/60989209/6784662
https://stackoverflow.com/a/10517081/6784662
[……]
使用 JavaScript 的 Apply
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply
Refrance:
https://stackoverflow.com/a/3914600/6784662
https://realdennis.medium.com/javascript-%E8%81%8A%E8%81%8Acall-apply-bind%E7%9A%84%E5%B7%AE%E7%95%B0%E8%88%87%E7%9B%B8%E4%BC%BC%E4%B9%8B%E8%99%95-2f82a4b4dd66
[……]
開啟專案或拿到別人開發的專案後,第一件事會為專案安裝一些必要的依賴(dependencies)套件
不過安裝過程中不斷噴出警告 (WARN),想嚇死誰
一開始很糾結這些警告,就是心裡過不去,久而久之也就習慣了…後來在Expo官方文件看到一篇文章有提到這一段,然後心裡踏實多了
為新項目安裝依賴項時,您可能會看到一些警告。這些是由於某些外部程序包具有過分嚴格或不必要的依賴關係而引起的,正在清理它們。它們不會對您的項目造成任何傷害。
[……]
這很有用喔,JavaScript 把零散程式封裝成插件時,會傳入物件相關選項 options,使封裝的程式因為選項 options 的屬性值不同而能實體化出更多可能。
為維持程式正常運行,通常都會建立一個預設值物件,在實體化的時候傳入一個選項 options 物件 ,與預設選項物件合併,後者覆蓋前者,以下為範例程式:
_default 為預設物件
options 為傳入物件
_options 為合併後物件
output:
如果兩個對象都有一個具有相同名稱的屬性,則第二個對象屬性將覆蓋第一個對象。
ES6在2015年引入了spread運算符【…】,這是將兩個簡單對象合併為一個的完美方法:
output:
參考資料:
https://stackoverflow.com/a/171256/6784662
[……]
不需完成圖片、CSS、iframe等加載,只要DOM解析完成就觸發,這邊介紹兩種寫法,完成相同任務
JavaScript
jQuery
圖片、CSS、iframe…等,資源載入完成後觸發, 這邊一樣介紹兩種寫法,完成相同任務
JavaScript
jQuery
https://html.spec.whatwg.org/multipage/indices.html#events-2
[……]
YouTube JavaScript API 於載入完成後會呼叫一次 onYouTubeIframeAPIReady 這個全域方法,只會呼叫一次,但如果其他程式已經先載入了 YouTube JavaScript API 並初始後另外再加載 YouTube JavaScript API 則 onYouTubeIframeAPIReady 這個方法將會被覆蓋,導致最後載入的程式將不會被呼叫
也不知道為什麼 YouTube JavaScript API 不用事件觸發的方式,而且 function 名稱也沒辦法改,使用一些主題或模板,根本不知道有沒有先載入過YouTube JavaScript API,Debug到昏倒
為了避免 onYouTubeIframeAPIReady 這方法已被占用,這裡不用這個方法,首先一樣載入 API:
接著建立建構方法取代原 onYouTubeIframeAPIReady 中的程式
接著透過計時器重複判斷 YT 是否被初始,若 YT 已初始就呼叫上方建構方法,如此即可不用依賴 onYouTubeIframeAPIReady 這方法,避免被覆蓋的問題
https://stackoverflow.com/a/36048501/6784662
[……]
YouTube JavaScript API 於載入完成後會呼叫一次 onYouTubeIframeAPIReady 這個全域方法,只呼叫一次,如果已經使用了 jQuery YTPlayer 另外再加載 YouTube JavaScript API 則,onYouTubeIframeAPIReady 這個 function 將會被覆蓋,不管誰覆蓋誰,總之就是有個會被覆蓋,導致另一段初始的程式將不會被呼叫
也不知道為什麼不用事件觸發的方式,而且 function 名稱也沒辦法改,使用一些主題或模板,根本 也不知道有沒有先載入過YouTube JavaScript API,Debug到昏倒
幸好 YTPlayer 算有良心的,沒有霸佔這個方法, YouTube JavaScript API 呼叫 YTPlayer的 onYouTubeIframeAPIReady 後會發送一個 YTAPIReady 事件,偵聽這個事件,可以將本來在自己的 onYouTubeIframeAPIReady 要做的事改在事件觸發後執行,以下如以下代碼:
如此一來,兩個 onYouTubeIframeAPIReady 都正確被執行拉
https://github.com/pupunzi/jquery.mb.YTPlayer/issues/163
如果沒有使用 YTPlayer 一樣可以解決這個問題,可參考此篇
[……]
JavaScript es6 有引入外部文件的功能 import
import 後得到一個錯誤
Uncaught SyntaxError: Cannot use import statement outside a module
解決方法
必須要宣告為js的模組,在引入js的script tag中加入type=”module” 這個屬性如下
[……]
javascript 卷軸自動捲到某一元素
$('html, body').animate({ scrollTop: ele.offset().top - 110 + 'px' }, 1500 ,'easeInOutQuint');
[……]