JS
javascript
要宣告function,不要丟在ready裡面,要放在外面,這樣才存取得到。
詳細、新
參考資料:(https://eyesofkids.gitbooks.io/javascript-start-from-es6/content/part4/event.html)
比對
模糊比對 *= // 類似SQL "%value%" 後綴比對 $= // 類似SQL "%value"
selector
參考資料:(https://api.jquery.com/category/selectors/)
jQuery .prop() 設值
$("input[name=background][value='some value']").prop("checked",true);
Math.ceil() 無條件進位成整數
不回傳值 javascript:void(0)
參考資料:(http://www.runoob.com/js/js-void.html)
javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。
因為void 不回傳值,所以放在href裡面,可以當成無效的連結,但是()內的東西還是會發生,例如第二行,就會跳出提示窗。
this
參考資料:(https://software.intel.com/zh-cn/blogs/2013/10/09/javascript-this)
不管方法在哪裡,是誰的方法,只要直接呼叫方法,this就是全域物件。
只要是 _.方法,this 就是 _。
比如說
指定this給方法
有個方法可以更動前兩種敘述所讓this指派的值,就是利用call與apply。call與apply都是呼叫該函式並讓該函式的this指向給予call或apply的第一個參數。至於call和apply的差別則是在於其後面給予被調用之函式的參數放入的方法不同,一個是直接攤平放在第二個以後的參數;一個是直接放入一個裡面放要給予之參數的陣列。底下一樣看一下公式和範例:
滑出效果
參考資料:(http://abgne.tw/jquery/apply-jquery/slide-q-and-a-list.html)
.hover 滑鼠經過的事件 .click 點擊事件 .slideToggle 展開(若已經展開則收合)
.hover 滑鼠經過的事件
可以直接從CSS控制
indexOf() 建議都換成字串
display
參考資料:(http://zh-tw.learnlayout.com/display.html)
屬性名稱:display 常用的值:block、inline、none
各種奇怪的JS bug
參考資料:(https://read01.com/zh-tw/EaNe8.html#.WytteKczYdV)
前一個、下一個
前一個:.prev()
下一個:.next()
導向語法
參考資料:(https://stackoverflow.com/questions/4744751/how-do-i-redirect-with-javascript)
利用連結觸發事件
confirm 通知訊息窗可以是、否
參考資料:(https://www.w3schools.com/jsref/met_win_confirm.asp)
此方法會根據使用者點擊的內容,回傳true、false
.tiff 主流瀏覽器中僅被 safari & IE support
location.href 取得當前網址
參考資料:(http://function1122.blogspot.com/2008/04/javascript.html)
參考資料:(http://www.wibibi.com/info.php?tid=82)
.sort()
.sort() 字串排序 .reverse() 反轉 (合併起來用、即為倒序)
.sort(function(a,b){return a - b}) 數字排序 .sort(function(a,b){return b - a}) 數字倒序
arr3 = arr1.concat(arr2)
參考資料:(https://xyz.cinc.biz/2012/12/javascriptmerge.html)
陣列合併,不會去除重複值
若要去除,請查看參考資料
Array.isArray(object)
參考資料:(https://msdn.microsoft.com/zh-tw/library/ff848265(v=vs.94).aspx)
判斷是否為陣列
Math.abs() 傳回絕對值
參考資料:(http://www.victsao.com/blog/81-javascript/255-javascript-math-abs)
parseInt() 確認為Int
arr.join(str)
參考資料:(https://www.w3schools.com/jsref/jsref_join.asp)
將陣列合併成字串,並用 str
做分隔
arr.toString() 等於 arr.join(",")
setInterval(()=>{},毫秒)
setInterval(()=>{ console.log(123); },1000);
clearInterval( setInterval 的 函式物件 )
陣列的處理
Array.push(item)
將 item 放入 array
Array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
start : 要從第幾個索引開始 deleteCount : 將 start 之後的幾個索引刪去 item1... : 將這些物件插入到 start 之後
array.indexOf(item)
檢查該 item 是否存在於 array
陣列的處理方法
參考資料:(https://wcc723.github.io/javascript/2017/06/29/es6-native-array/#Array-prototype-filter)
Array.prototype.filter()
Array.prototype.find()
find() 與 filter() 很像,但 find() 只會回傳一次值,且是第一次為 true 的值。
Array.prototype.forEach()
forEach 是這幾個陣列函式最單純的一個,不會額外回傳值,只單純執行每個陣列內的物件或值。
Array.prototype.map()
使用 map()
時他需要回傳一個值,他會透過函式內所回傳的值組合成一個陣列。
如果不回傳則是
undefined
回傳數量等於原始陣列的長度
這很適合將原始的變數運算後重新組合一個新的陣列。
Array.prototype.every()
every()
可以檢查所有的陣列是否符合條件,這僅會回傳一個值 true
or false
,可以用來檢查陣列中的內容是否符合特定條件。
Array.prototype.some()
some()
與 every()
非常接近,都是回傳 true
or false
,差異僅在 every()
需完全符合,some()
僅需要部分符合。
Array.prototype.reduce()
reduce()
和其他幾個差異就很大了,他可以與前一個回傳的值再次作運算,參數包含以下:
accumulator: 前一個參數,如果是第一個陣列的話,值是以另外傳入或初始化的值
currentValue: 當前變數
currentIndex: 當前索引
array: 全部陣列
其它
預設的陣列行為內的 this 是指向 window (本篇中除了 reduce() 是傳入初始資料),如果要改,可以在 function 後傳入。
如何將物件組成queryString
Object.keys(payload)
會回傳陣列 ["param1", "param2", "param3", "notImportant", "blablabla"]
Object.keys(payload)
.filter(key => key.includes('param'))
.map(key=> ${key}=${payload[key]} )
.join('&')
param1=10¶m2=20¶m3=30
大功告成!
跳轉
參考資料:w3c-location(https://www.w3schools.com/jsref/obj_location.asp)
參考資料:中文詳細解釋 w3c 的內容(http://cat-son.blogspot.com/2012/11/javascript-windowlocation.html#sthash.W7qz9xAm.dpbs)
設屬性去跳轉
方法跳轉
取得參數
重讀頁面
window.location.reload(forceGet)
forceGet 預設為 false,代表從 Cache 重新載入 如果設為 true,則會跟 Server 重新要資料
取得元素的座標
參考資料:(https://andyyou.github.io/2015/04/07/get-an-element-s-position-by-js/)
用 JavaScript 來取得表單元素內容的值(取值)
參考資料:(https://pjchender.blogspot.com/2015/11/javascript.html)
使用 getElementById
getElementsByTagName
getElementsByName
利用form取得元素
Last updated