CVTE前端筆試編程題

這些題目是作完筆試以後,在別的地方找到的,如今附上。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

不說了,我要去擼代碼去了,還有繼續努力,你們加油。函數

相關文章
相關標籤/搜索