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
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!
a-zA-Z ↩︎