2019前端面試題整理(經典20題)


1. javascript的typeof返回哪些數據類型

string,boolean,number,undefined,function,object

2. split()和 join() 的區別

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

3.call和apply的區別

Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)

4. 如何阻止事件冒泡

ie:阻止冒泡ev.cancelBubble = true;非IE ev.stopPropagation();

5.添加 刪除 替換 插入到某個接點的方法

1)創建新節點
createElement() //創建一個具體的元素
createTextNode() //創建一個文本節點

2)添加、移除、替換、插入
appendChild() //添加
removeChild() //移除
replaceChild() //替換
insertBefore() //插入

3)查找
getElementsByTagName() //通過標簽名稱
getElementsByName() //通過元素的Name屬性的值
getElementById() //通過元素Id,唯一性

6.document load 和document ready的區別

document.onload 是在結構和樣式,外部js以及圖片加載完才執行js
document.ready是dom樹創建完成就執行的方法,原生種沒有這個方法,jquery中有 $().ready(function)

7.函數聲明與函數表達式的區別?

在Javscript中,解析器在向執行環境中加載數據時,對函數聲明和函數表達式並非是一視同仁的,解析器會率先讀取函數聲明,並使其在執行任何代碼之前可用(可以訪問),
至於函數表達式,則必須等到解析器執行到它所在的代碼行,才會真正被解析執行。

8.看下面代碼,給出輸出結果

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

9.看下列代碼,輸出什么?解釋原因

var a = null;
alert(typeof a);
答案:object
解釋:null是一個只有一個值的數據類型,這個值就是null。表示一個空指針對象,所以用typeof檢測會返回”object”。

10.null和undefined的區別?

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

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

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

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

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

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

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

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

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

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

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

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

12.希望獲取到頁面中所有的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);
  }
}

13.寫一個function,清除字符串前后的空格。(兼容所有瀏覽器)

String.prototype.trim= function(){

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

}

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

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

15.form中的input可以設置為readonly和disable,請問2者有什么區別?

readonly不可編輯,但可以選擇和復制;值可以傳遞到后台
disabled不能編輯,不能復制,不能選擇;值不可以傳遞到后台

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

try{
 
}catch(e){
 
}finally{
 
}

17.Ajax原理

(1)創建對象

var xhr = new XMLHttpRequest();

(2)打開請求

xhr.open('GET', 'example.txt', true);

(3)發送請求

xhr.send(); 發送請求到服務器

(4)接收響應

xhr.onreadystatechange =function(){}

(1)當readystate值從一個值變為另一個值時,都會觸發readystatechange事件。

(2)當readystate==4時,表示已經接收到全部響應數據。

(3)當status ==200時,表示服務器成功返回頁面和數據。

(4)如果(2)和(3)內容同時滿足,則可以通過xhr.responseText,獲得服務器返回的內容。

18.降維數組

var arr=[[1,2],[3,4]];
function Jw(obj){
     return Array.prototype.concat.apply([],obj);
}
Jw(arr);

19.為什么利用多個域名來存儲網站資源會更有效

確保用戶在不同地區能用最快的速度打開網站,其中某個域名崩潰用戶也能通過其他郁悶訪問網站

20.請說出減低頁面加載時間的方法

1、壓縮css、js文件
2、合並js、css文件,減少http請求
3、外部js、css文件放在最底下
4、減少dom操作,盡可能用變量替代不必要的dom操作

 


免責聲明!

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



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