關於前端的面試題,我每天都看呦

18. 對作用域上下文和this的理解,看下列代碼:

var User = {
count: 1,
getCount: function() {
return this.count;
}
};
console.log(User.getCount()); // what?
var func = User.getCount;
console.log(func()); // what?
問兩處console輸出什麼?爲什麼?
答案:是1和undefined。
  func是在window的上下文中被執行的,所以不會訪問到count屬性。
19. 看下面代碼,給出輸出結果。

for(var i = 1; i <= 3; i++){ //建議使用let 可正常輸出i的值
setTimeout(function(){
console.log(i);
},0);
};
答案:4 4 4。
原因:Javascript事件處理器在線程空閒之前不會運行。

20. 當一個DOM節點被點擊時候,我們希望能夠執行一個函數,應該怎麼做?

box.onlick= function(){}

box.addEventListener(“click”,function(){},false);

21. Javascript的事件流模型都有什麼?

“事件冒泡”:事件開始由最具體的元素接受,然後逐級向上傳播

“事件捕捉”:事件由最不具體的節點先接收,然後逐級向下,一直到最具體的

“DOM事件流”:三個階段:事件捕捉,目標階段,事件冒泡

22. 看下列代碼,輸出什麼?解釋原因。

var a = null;
alert(typeof a);
答案:object
解釋:null是一個只有一個值的數據類型,這個值就是null。表示一個空指針對象,所以用typeof檢測會返回”object”。
23. 判斷字符串以字母開頭,後面可以是數字,下劃線,字母,長度爲6-30

var reg=/1\w{5,29}$/;

24. 回答以下代碼,alert的值分別是多少?

正確答案是: 100, 10, 10
25. javaScript的2種變量範圍有什麼不同?

全局變量:當前頁面內有效

局部變量:函數方法內有效

26. null和undefined的區別?

null是一個表示"無"的對象,轉爲數值時爲0;undefined是一個表示"無"的原始值,轉爲數值時爲NaN。

當聲明的變量還未被初始化時,變量的默認值爲undefined。 null用來表示尚未存在的對象

undefined表示"缺少值",就是此處應該有一個值,但是還沒有定義。典型用法是:

(1)變量被聲明瞭,但沒有賦值時,就等於undefined。

(2)調用函數時,應該提供的參數沒有提供,該參數等於undefined。

(3)對象沒有賦值的屬性,該屬性的值爲undefined。

(4)函數沒有返回值時,默認返回undefined。

null表示"沒有對象",即該處不應該有值。典型用法是:

(1) 作爲函數的參數,表示該函數的參數不是對象。

(2) 作爲對象原型鏈的終點。

27. new操作符具體幹了什麼呢?

1、創建一個空對象,並且 this 變量引用該對象,同時還繼承了該函數的原型。

2、屬性和方法被加入到 this 引用的對象中。

3、新創建的對象由 this 所引用,並且最後隱式的返回 this 。

28. js延遲加載的方式有哪些?

defer和async、動態創建DOM方式(創建script,插入到DOM中,加載完畢後callBack)、按需異步載入js

29. Flash、Ajax各自的優缺點,在使用中如何取捨?

Flash ajax對比

(1)Flash適合處理多媒體、矢量圖形、訪問機器;對CSS、處理文本上不足,不容易被搜索。

(2)ajax對CSS、文本支持很好,支持搜索;多媒體、矢量圖形、機器訪問不足。

共同點:與服務器的無刷新傳遞消息、用戶離線和在線狀態、操作DOM

30. 寫一個獲取非行間樣式的函數

function getStyle(obj,attr) {

if(obj.currentStyle) {

return obj.currentStyle[attr];

}else{

getComputedStyle(obi,false)[attr]

}

}

31. 希望獲取到頁面中所有的checkbox怎麼做?(不使用第三方框架)

var inputs = document.getElementsByTagName(“input”);//獲取所有的input標籤對象
var checkboxArray = [];//初始化空數組,用來存放checkbox對象。
for(var i=0;i<inputs.length;i++){
var obj = inputs[i];
if(obj.type==‘checkbox’){
checkboxArray.push(obj);
}
}
32. 寫一個function,清除字符串前後的空格。(兼容所有瀏覽器)

String.prototype.trim= function(){

return this.replace(/^\s+/,"").replace(/\s+$/,"");

}

33. javascript語言特性中,有很多方面和我們接觸的其他編程語言不太一樣,請舉例

javascript語言實現繼承機制的核心就是  1  (原型),而不是Java語言那樣的類式繼承。Javascript解析引擎在讀取一個Object的屬性的值時,會沿着  2  (原型鏈)向上尋找,如果最終沒有找到,則該屬性值爲  3  undefined;如果最終找到該屬性的值,則返回結果。與這個過程不同的是,當javascript解析引擎執行“給一個Object的某個屬性賦值”的時候,如果當前Object存在該屬性,則改寫該屬性的值,如果當前的Object本身並不存在該屬性,則賦值該屬性的值。

34. Cookie在客戶機上是如何存儲的

Cookies就是服務器暫存放在你的電腦裏的文本文件,好讓服務器用來辨認你的計算機。當你在瀏覽網站的時候,Web服務器會先送一小小資料放在你的計算機上,Cookies 會幫你在網站上所打的文字或是一些選擇都記錄下來。當下次你再訪問同一個網站,Web服務器會先看看有沒有它上次留下的Cookies資料,有的話,就會依據Cookie裏的內容來判斷使用者,送出特定的網頁內容給你。

35. 如何獲取javascript三個數中的最大值和最小值?

Math.max(a,b,c);//最大值

Math.min(a,b,c)//最小值

36. javascript是面向對象的,怎麼體現javascript的繼承關係?
使用prototype原型來實現。

37. .form中的input可以設置爲readonly和disable,請問2者有什麼區別?
readonly不可編輯,但可以選擇和複製;值可以傳遞到後臺
disabled不能編輯,不能複製,不能選擇;值不可以傳遞到後臺

38. 列舉javaScript的3種主要數據類型,2種複合數據類型和2種特殊數據類型。

主要數據類型:string, boolean, number

複合數據類型:function, object

特殊類型:undefined,null

39. 程序中捕獲異常的方法?

try{

}catch(e){

}finally{


作者:曲小強
來源:CSDN
原文:https://blog.csdn.net/quhongqiang/article/details/80388401
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!


  1. a-zA-Z ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章