題目形貌
之前寫js函式,都沒設定過預設值,由於是做後端php身世,所以在給引數設定預設值的時刻,直接用了php的語法,firefox是好用的,在蘋果機上的某些版本的chrome也是好用的,然則實在我的寫法是毛病的,某些情況下,js就報錯了。
毛病的寫法
function get_data(from=0,limit=0){
console.log(from);
console.log(limit);
get_data();
get_data(5);
get_data(5,10);
這個寫法firefox沒報錯,運轉一般,然則chrome不認
準確的寫法
js函式中有個貯存引數的陣列arguments ,一切函式取得的引數會被編譯器挨個儲存到這個陣列中。
function get_data(){
var from = arguments[0] ? arguments[0] : 0;
var limit = arguments[1] ? arguments[1] : 0;
console.log(from);
console.log(limit);
get_data();
get_data(5);
get_data(5,10);
簡化後的寫法
文章寫好以後發到交換群裡了,有乙個特地做前端的朋儕通知了我更簡樸的寫法
function get_data(){
var from = arguments[0] || 0;
var limit = arguments[1] || 0;
console.log(from);
console.log(limit);
get_data();
get_data(5);
get_data(5,10);
運轉效果跟第二種一樣,有新收成很愉快,真是朋儕多了路好走。
總結看來很多相識js那些隱蔽的引數
做前端的時刻要斟酌瀏覽器相容題目,真的好麻煩,弄好了這個瀏覽器,其他瀏覽器能夠又不可,不能有一絲懶惰,
頭疼,疼疼疼….
js怎麼做預設函式形參 js函式引數設定預設值
題目形貌 之前寫js函式,都沒設定過預設值,由於是做後端php身世,所以在給引數設定預設值的時刻,直接用了php的語法,firefox是好用的,在蘋果機上的某些版本的chrome也是好用的,然則實在我的寫法是毛病的,某些情況下,js就報錯了。毛病的寫法 function get data from ...
js函式傳參
要理解函式的傳參機制,首先,我們首先就要弄清楚的就是js資料型別的儲存機制和變數複製的方式,上文中 js中為什麼不能為值型別的變數動態新增屬性呢?這裡已經討論過了,這裡不再累贅,接著我們來討論下,js的變數複製 請看以下 在看 從上面 的輸出結果,我們可以看出,對於基本型別來說,其複製的是被複製變數...
函式過載 const形參 預設實參
過載 同乙個作用域內的幾個函式名字相同但是形參列表不同,我們稱之為過載 overload 不能定義兩個函式除了返回型別外其他所用的要素都相同。過載和const形參 預設實參 呼叫含有預設實參的函式時,可以包含該實參,也可以省略該實參。注意,一旦某個形參被賦予了預設值,它後面的所有形參都必須有預設值。...