CVTE前端筆試編程題


這些題目是做完筆試之后,在別的地方找到的,現在附上。

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.這個可以用正則表達式,也可以定義。

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,第八章),下面我貼出一些代碼。
注:這是別人的代碼,僅供參考。

不說了,我要去擼代碼去了,還有繼續努力,大家加油。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM