閉包
注意到返回的函式在其定義內部應用了區域性變數arr,當乙個函式返回乙個函式後,其內部的區域性變數還被新函式引用,閉包用起來簡單,實現起來不容易。
箭頭函式
x => x * x
相當於function(x)); // 25比方說對乙個array
求和,就可以用reduce
實現:
var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) ); // 25
sort()
array
的sort()
方法預設把所有元素先轉換為string再排序,結果'10'
排在了'2'
的前面,因為字元'1'
比字元'2'
的ascii碼小
要按數字大小排序,我們可以這麼寫:
'use strict';
var arr = [10, 20, 1, 2];
arr.sort(function (x, y)
if (x > y)
return 0;
});console.log(arr); // [1, 2, 10, 20]
例如,在乙個array
中,刪掉偶數,只保留奇數,可以這麼寫:
var arr = [1, 2, 4, 5, 6, 9, 10, 15];
var r = arr.filter(function (x) );
r; // [1, 5, 9, 15]
把乙個array
中的空字串刪掉,可以這麼寫:
var arr = ['a', '', 'b', null, undefined, 'c', ' '];
var r = arr.filter(function (s) );
r; // ['a', 'b', 'c']
可見用filter()
這個高階函式,關鍵在於正確實現乙個「篩選」函式。 js 高階知識
1 caller 表示呼叫該函式的函式 function fun1 function fun2 fun2 11,22 11 2 function foo var foo new foo var p foo.prototype foo.prototype alert foo.constructor a...
js 高階知識
1 開啟乙個視窗就會有乙個window物件 如頁面上的iframe window中包含document,document主要是來操作dom元素的 頁面上的標籤元素 2 我們在頁面上宣告乙個全域性變數其實是宣告在window物件上的,eg var abc jy alert window.abc ale...
js高階知識小結 三
1 什麼是物件導向?是一種程式設計思想 將屬性和方法封裝在一起,然後通過.語法呼叫 2 物件導向好處 a 物件導向思維方式是一種更符合人們思考習慣的思想 b 面向過程思維方式中更多的體現的是執行者 自己做事情 物件導向中更多的體現是指揮者 指揮物件做事情 c 物件導向思維方式將複雜的問題簡單化。3 ...