目錄:
- 一、前言
- 二、JS 基礎篇
- 26、要將頁面的狀態欄中顯示“已經選中該文本框”,下列 JavaScript 語句正確的是( A )
- 27、以下哪條語句會產生運行錯誤:(A)
- 28、以下哪個單詞不屬於 javascript 保留字:(B)
- 29、請選擇結果爲真的表達式:(C)
- 30、分析代碼,得出正確的結果。
- 31、寫出函數 DateDemo 的返回結果,系統時間假定爲今天
- 32、 寫出程序運行的結果
- 33、截取字符串 abcdefg 的 efg
- 34、列舉瀏覽器對象模型 BOM 裏常用的至少 4 個對象,並列舉 window 對象的常用方法至少 5 個
- 35、簡述列舉文檔對象模型 DOM 裏 document 的常用的查找訪問節點的方法並做簡單說明
- 36、JavaScript 的數據類型都有什麼?
- 37、簡述創建函數的幾種方式
- 38、Javascript 如何實現繼承?
- 39、Javascript 創建對象的幾種方式?
- 40、把 Script 標籤 放在頁面的最底部的 body 封閉之前 和封閉之後有什麼區別?瀏覽器會如何解析它們?
- 41、DOM 操作——怎樣添加、移除、移動、複製、創建和查找節點。
- 42、js 延遲加載的方式有哪些?
- 43、documen.write 和 innerHTML 的區別?
- 44、哪些操作會造成內存泄
- 45、split() join() 的區別
一、前言
- 做這個的初心是希望鞏固自己的基礎知識,當然也希望能夠幫助更多的開發者!
- 有些題目有多種答案,本文只給出了其中的一種,哪裏有問題的話歡迎指出~
- 這個欄目將持續更新,前端的小夥伴歡迎關注噢~
二、JS 基礎篇
26、要將頁面的狀態欄中顯示“已經選中該文本框”,下列 JavaScript 語句正確的是( A )
A. window.status=”已經選中該文本框”
B. document.status=”已經選中該文本框”
C. window.screen=”已經選中該文本框”
D. document.screen=”已經選中該文本框”
27、以下哪條語句會產生運行錯誤:(A)
A.var obj = ();
B.var obj = [];
C.var obj = {};
D.var obj = //;
28、以下哪個單詞不屬於 javascript 保留字:(B)
A.with
B.parent
C.class
D.void
29、請選擇結果爲真的表達式:(C)
A.null instanceof Object
B.null === undefined
C.null == undefined
D.NaN == NaN
30、分析代碼,得出正確的結果。
var a=10, b=20 , c=30;
++a;
a++;
e=++a+(++b)+(c++)+a++;
alert(e);
答案:彈出提示對話框:77
var a=10, b=20 , c=30;
++a;//a=11
a++;//a=11
e=++a+(++b)+(c++)+a++;
//a=12 13+21+30+13=77
alert(e);
31、寫出函數 DateDemo 的返回結果,系統時間假定爲今天
function DateDemo(){
var d, s="今天日期是:";
d = new Date();
s += d.getMonth() + "/";
s += d.getDate() + "/";
s += d.getFullYear();
return s;}
結果:今天日期是:9/21/2019
32、 寫出程序運行的結果
for(i=0, j=0; i<10, j<6; i++, j++){
k = i + j;}
結果:10
for(i=0, j=0; i<10, j<6; i++, j++){
//j=5 i=5
k = i + j;//k=10
}
//結果:10
33、截取字符串 abcdefg 的 efg
alert(‘abcdefg’.substring(4));
34、列舉瀏覽器對象模型 BOM 裏常用的至少 4 個對象,並列舉 window 對象的常用方法至少 5 個
對象:Window document location screen history navigator
方法:Alert() confirm() prompt() open() close()
35、簡述列舉文檔對象模型 DOM 裏 document 的常用的查找訪問節點的方法並做簡單說明
Document.getElementById 根據元素 id 查找元素
Document.getElementByName 根據元素 name 查找元素
Document.getElementTagName 根據指定的元素名查找元素
36、JavaScript 的數據類型都有什麼?
基本數據類型:String,Boolean,Number,Undefined,Null
引用數據類型:Object(Array,Date,RegExp,Function)
37、簡述創建函數的幾種方式
第一種(函數聲明):
function sum1(num1,num2){
return num1+num2;
}
第二種(函數表達式):
var sum2 = function(num1,num2){
return num1+num2;
}
匿名函數:
function(){}:只能自己執行自己
第三種(函數對象方式):
var sum3 = new Function(“num1”,“num2”,“return num1+num2”);
38、Javascript 如何實現繼承?
原型鏈繼承,借用構造函數繼承,組合繼承,寄生式繼承,寄生組合繼承
39、Javascript 創建對象的幾種方式?
工廠方式,構造函數方式,原型模式,混合構造函數原型模式,動態原型方式
40、把 Script 標籤 放在頁面的最底部的 body 封閉之前 和封閉之後有什麼區別?瀏覽器會如何解析它們?
如果說放在 body 的封閉之前,將會阻塞其他資源的加載
如果放在 body 封閉之後,不會影響 body 內元素的加載
41、DOM 操作——怎樣添加、移除、移動、複製、創建和查找節點。
1.創建新節點
createDocumentFragment() // 創建一個 DOM 片段
createElement() // 創建一個具體的元素
createTextNode() // 創建一個文本節點
2.添加、移除、替換、插入
appendChild()
removeChild()
replaceChild()
insertBefore() // 在已有的子節點前插入一個新的子節點
3.查找
getElementsByTagName() // 通過標籤名稱
getElementsByName() // 通過元素的 Name 屬性的值(IE 容錯能力較強,會得到一個數組,
其中包括 id 等於 name 值的)
getElementById() // 通過元素 Id,唯一性
42、js 延遲加載的方式有哪些?
1.defer 和 async
2.動態創建 DOM 方式(創建 script,插入到 DOM 中,加載完畢後 callBack)
3.按需異步載入 js
43、documen.write 和 innerHTML 的區別?
document.write 只能重繪整個頁面
innerHTML 可以重繪頁面的一部分
44、哪些操作會造成內存泄
內存泄漏指任何對象在您不再擁有或需要它之後仍然存在。
垃圾回收器定期掃描對象,並計算引用了每個對象的其他對象的數量。如果一個對象的引用
數量爲 0(沒有其他對象引用過該對象),或對該對象的惟一引用是循環的,那麼該對象的
內存即可回收。
1.setTimeout 的第一個參數使用字符串而非函數的話,會引發內存泄漏。
2.閉包
3.控制檯日誌
4.循環(在兩個對象彼此引用且彼此保留時,就會產生一個循環)
45、split() join() 的區別
答:前者是切割成數組的形式,後者是將數組轉換成字符串
相關文章推薦:
Web前端開發——BAT面試題彙總及答案01(持續更新中)
Web前端開發——BAT面試題彙總及答案02(持續更新中)
Web前端開發——BAT面試題彙總及答案03(持續更新中)