javascript測試題總結


1.js的幾種數據類型?判斷基本數據類型的操作符是什么?

 答案:Number,String,bool,undefined,obejct(此處為null類型屬於object,所以此處寫object)

    typeof

2.列舉你知道的JS瀏覽器兼容問題。

 (1)ie不支持ClassName取標簽,非ie支持

 (2) 獲取非ie窗口的scrolltop值通過document.body.scrollTop

    獲取ie窗口的scrolltop值通過document.documentElement.scrollTop

 (3) 通過childNodes獲取子節點,ie不能取到回車節點,非ie可以。

 (4) innerText在火狐中不可用

 (5) addEventListener 非ie支持,attachEvent ie專用

 (6) input標簽的type屬性在ie6中不可修改

3.setTimeout()和setInterval()的區別以及使用它們需要注意的事項。

setInterval(函數,time) 它從載入后,每隔指定的時間就執行一次表達式(循環執行) ,一般放控制函數外部。

setTimeout(函數,time) 在執行時,是在載入后延遲指定時間后,去執行一次表達式, (只執行一次) ,一般放控制函數內部。

注意:(1) 這兩種方法可能看起來非常像,而且顯示的結果也會很相似,不過兩者的最大區別就是,setTimeout方法不會每隔x秒鍾就執行一次函數,它是在每次調用setTimeout后過x秒鍾再去執行函數。這意味着如果函數的主體部分需要2秒鍾執行完,那么整個函數則要每x+2秒鍾才執行一次。而setInterval卻沒有被自己所調用的函數所束縛,它只是簡單地每隔一定時間就重復執行一次那個函數。如果要求在每隔一個固定的時間間隔后就精確地執行某動作,那么最好使用setInterval,而如果不想由於連續調用產生互相干擾的問題,尤其是每次函數的調用需要繁重的計算以及很長的處理時間,那么最好使用setTimeout。

(2) 注意及時清計時器

(3)setTimeout(alert(this),20)/ setInterval(alert(this),20)中this都指向window

(4)不能直接傳參

4.字符串轉化為整形的方法,整形轉化為字符串的方法。

(1)parseInt()、Number();

(2)toString();String();“”;

5.在團隊開發中,你是如何避免JS命名沖突的?

(1)閉包    ( function ( ) {  } )

(2) 命名空間

(3)可以開發前規定命名規范,根據不同開發人員開發的功能在函數前加前綴

6.簡述一下綁定事件的常見方法,它們有什么特點?

(1)在標簽中綁定;

(2)Element.on+type=func;

(3)attachEvent("on"+type,func);

(4)addEventListener(type,func,false); 執行冒泡階段

  addEventListener(type,func,true); 執行捕獲階段

7.

function test(){
    alert(this);
}
test();
var o=['a'];
o.test = test3 =function(){
    alert(this);
}
o.test();
test3();

分別彈出什么?為什么?

第一個彈window,函數中this指向window,

第二個彈a,方法中的this指向對象

第三個彈window,test3是一個函數;

8.

var a=1;
function test(){
    a++;
    alert(a);
    var a=1;
    alert(a);
}
test();

結果是多少?為什么?
第一個彈NaN,a在test()里面找的時候,如果前面沒有聲明var a;那么a會自動變成var a;但是未賦值,所以是undefined,執行a++的時候會變成NaN,不是一個有效的數值;
第二個彈1,因為聲明了變量a=1;所以彈出1;


免責聲明!

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



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