這些題目是作完筆試以後,在別的地方找到的,如今附上。node
1.(1)這題考察的怎麼把參數轉換爲數組,而後再截取你想要的位數。正則表達式
function C(){ var a_args=Array.prototype.slice.call(argumens,0,2); var b_args=Array.prototype.slice.call(arguments,2); A.apply(this,a_args); B.apply(this,b_args); }
在函數內部,arguments和this是兩個特殊的對象,其中arguments是一個類數組對象,包含了傳入函數中全部參數,可能有的小夥伴會說爲什麼不直接用arguments.slice(0,2);arguments.slice(2).緣由是:雖然arguments是個類數組對象,並擁有length屬性,可是沒有數組的其餘方法,它並非一個真正的數組,能夠用(arguments instance of Array )來驗證,因此不能直接用slice方法,必須用Array.prototype.slice.call轉換成真正的數組。才能調用slice方法,不然會報錯的。數組
(2)另外還能夠用到ES6函數擴展中rest參數,安全
function C(...s){ A.call(this,s[0],s[1]); B.call(this,s.slice(2)); } function C(...s){ A.apply(this,s.slice(0,2)); B.apply(this,s.slice(2)); } function C(){ A(arguments[0],arguments[1]); B(Array.prototype.slice.call(arguments,2)); } 這幾種方法都是ok的
2.這個能夠用正則表達式,也能夠定義。app
function template(source){ var temp=source; return function(obj){ for(var prop in obj){ var tpl="<%="+prop+"%>"; temp=temp.replace(tpl,obj[prop]); } console.log(temp); } }
用for-in循環獲取對象的鍵名,從而得到鍵值,有意思的是不能直接獲取鍵值。這題後來看到有大神考慮到xss漏洞,模板安全的問題,後來查了查,確實是這樣,它的產生與多數模板有關(詳情請移入深刻淺出node.js,第八章),下面我貼出一些代碼。
注:這是別人的代碼,僅供參考。xss
不說了,我要去擼代碼去了,還有繼續努力,你們加油。函數