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操作