javascript 面試題目

來源:互聯網
上載者:User

標籤:方法   alert   button   pre   code   利用   位置   var   例子   

1. javascript的typeof返回哪些資料類型

 返回六大類型  number  string  object  function  undefined

例:typeof 37===‘number‘ typeof "str"===‘string‘

typeof  true===‘boolean‘ ; typeof  undefined===‘undefined‘

typeof  {a:1}===‘object‘  ; typeof  function(){}===‘function‘

   

2. 例舉3種強制類型轉換和2種隱式類型轉換?

強制類型:(parseInt,parseFloat,number)

   Boolean(value):把值轉換成Boolean類型;    Number(value):把值轉換成數字(整型或浮點數)

 String(value):把值轉換成字串。

隱式類型:(== - ===)

 

  1. split() 、join() 的區別

 

  前者是切割成數組的形式,後者是將數群組轉換成字串

  Split( ) 字串方法 將字串用分隔字元將它們串連起來返回字串數      組

  join()  數組方法   把數組的所有元素放入一個字串。

簡單地說,如果你用split(),是把一串字串(根據某個分隔字元)分成若干個元素存放在一個數組裡。

而join是把數組中的字串串連成一個長串,可以大體上認為是split的逆操作。

 

 

 

4. 數組方法pop() push() unshift() shift()

  push()像數組尾部追加元素  pop()尾部刪除 unshift()頭部添加     shift()頭部刪  除    

例 var Array=["A" ,"J"];
   Array.push("L");//尾部增加
   Array.pop();//尾部刪除
   Array.unshift("Q") //頭部追加
   Array.shift() //頭部刪除
   console.log(Array) //最後數組裡面的元素還是原來的

 

 

  1. 事件綁定和普通事件有什麼區別

區別 普通添加事件的方法不支援添加多個事件,最下面的事件會覆蓋上面的,

而事件綁定(addEventListener)方式添加事件可以添加多個。

例子

var btn = document.getElementById("btn");

btn.onclick = function () { alert(‘普通事件1‘);//不執行 }

btn.onclick = function () { alert(‘普通事件2‘);//彈出 }

// 上面用普通方法添加兩個事件,下面用事件綁定添加兩個事件。 btn.addEventListener(‘click‘, function () { alert(‘事件綁定1‘);//彈出 },false); btn.addEventListener(‘click‘, function () { alert(‘事件綁定2‘);//彈出 },false);

 

 

  1. IE和DOM事件流的區別

IE採用冒泡型事件 Netscape使用捕獲型事件 DOM使用先捕獲後冒泡型事件

1.執行順序不一樣、

冒泡型事件模型: button->div->body (IE事件流)
捕獲型事件模型: body->div->button (Netscape事件流)

DOM事件模型: body->div->button->button->div->body (先捕獲後冒泡)
2.參數不一樣

IE使用:
[Object].attachEvent("name_of_event_handler", fnHandler); //綁定函數
[Object].detachEvent("name_of_event_handler", fnHandler); //移除綁定
DOM使用:
[Object].addEventListener("name_of_event", fnHandler, bCapture); //綁定函數
[Object].removeEventListener("name_of_event", fnHandler, bCapture); //移除綁定
3.事件加不加on

Dom事件通過addEventListener添加元素監聽事件,第一個參數是事件名稱沒有on開頭(onclick要寫成click)
4.this指向問題

 IE下利用attachEvent註冊的處理函數調用時this指向不再是先前註冊事件的元素,這時的this為window

 dom通過addEventListener註冊的處理函數調用時this指的是先前註冊事件的元素

 

 

 

7. IE和標準下有哪些相容性的寫法

Var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target

8. call和apply的區別

call, apply作用就是借用別人的方法來調用,就像調用自己的一樣.

call方法:
文法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]])

則是直接的參數列表,主要用在js對象各方法互相調用的時候,使當前this執行個體指標保持一致,或在特殊情況下需要改變this指標。如果沒有提供 thisObj 參數,那麼 Global 對象被用作 thisObj。

apply方法:
文法:apply([thisObj[,argArray]])

apply:最多隻能有兩個參數——新this對象和一個數組

更簡單地說,apply和call功能一樣,只是傳入的參數列表形式不同:如 func.call(func1,var1,var2,var3)對應的apply寫法為:

func.apply(func1,[var1,var2,var3])

 

9. b繼承a的方法

定義a 並擴充其原型屬性
   function a(){

   }
   a.prototype.myname="貓";
   a.prototype.myage=18;
   a.prototype.study=function () {
       alert(111)
   };

  var m=new a();
   m.study();
   document.write(m.myname)

   function b() {

   };
 b繼承a的方法
   b.prototype=a.prototype;
   var m1=new b();
   m1.study();
   document.write(m1.myage)

 

 

  1. 如何阻止事件冒泡和預設事件

 

阻止預設事件

  1.在javescript中,return flase可以阻止預設事件,但必須加在onmousedown事件中,down的事兒幹完了,再加return flase。

2、在自訂函數addEvent中,return flase會失效,請使用事件對象來進行阻止。ev.preventDefault();//阻止預設事件。

3、、在低版本的IE中這些都不好使,需在onmousemove事件中調用obj.setCapture&&obj.setCapture();並且在onmouseup事件中清除obj.releaseCapture&&obj.releaseCapture();

阻止事件冒泡:

1、當子級的事件觸發時,其父級的事件也被觸發了。

2、冒泡跟它們在頁面中的顯示位置無關,只要在html結構中兩者是屬於父子關係,就存在事件冒泡。

3、阻止事件冒泡必須加在子級的身上。通過事件對象進行阻止。ev.cancelBubble=true;

 

 

 

javascript 面試題目

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.