(一)js數據類型有什麼
1-undefined 2-boolean 3-string 4-number 5-object 6-Null
(二)數組常用的方法?
不要直接上來就是push,shift,pop在這裏可以說一些比較別人不經常說的,比方說:splice,join,map,filter等等,還有es6的find,findIndex
(三)字符串常用的方法
split(),substring(),substr(),concat()等方法
(四)數組方法那些會改變原素組
01-shift:將第一個元素刪除並且返回刪除元素,空即爲undefined
02-unshift:向數組開頭添加元素,並返回新的長度
03-pop:刪除最後一個並返回刪除的元素
04-push:向數組末尾添加元素,並返回新的長度
05-reverse:顛倒數組順序
06-sort:對數組排序
07-splice:splice(start,length,item)刪,增,替換數組元素,返回被刪除數組,無刪除則不返回
(五)什麼是事件委託?
事件委託就是利用事件冒泡,只指定一個父類元素綁定事件,就可以管理所有子類元素
(六)事件委託的實際運用場景是什麼?
01-Ajax局部刷新區域
02-綁定層級比較低的時候,不在body上綁定
03-定次數較少的時候,把多個事件綁定合併到一次事件委託中,由這個事件委託的回調,來進行分發
(七)怎麼理解js的單線程問題?
01-js本身是單線程的,瀏覽器有個概念叫執行隊列
02-js需要先將自己加入到執行隊列中由瀏覽器來解析,但是執行隊列時允許部分元素或者說是對象插隊的,比如ajax。於是就形成了js的單線程,但是看起來像是多線程的
03-這裏一般會出一些同步和異步的面試題 ->比如 如下Dome:
console.log(111);setTimeout(function(){console.log(222)},1000); console.log(333) 這段代碼的結果,爲什麼結果是這樣子的,這段代碼的結果是,111,333,222.如果要改成按照順序執行,111,222,333怎麼改進,這個思路是Promise()
(八)數組去重?
01-es5->這個實現方法很多,我列舉其中的2種->
(01)
第一種:var arr1 = [1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5];
function rep(arr) {
var ret = [];
for (var i = 0; i <arr1.length; i++) {
if (ret.indexOf(arr1[i]) ==-1) {
ret.push(arr1[i]);
}
}
return ret;
}
var result = rep(arr1);
console.log(result)
(2)
第二種:var arr = [1, 2, 3, 4, 5, 1, 2, 3];
var r = arr.filter(function (element, index, self) {
return self.indexOf(element) === index;
});
console.log(r);
02-es6->var arr =Array.from( new Set(數組))
(九)冒泡排序
var examplearr=[8,94,15,88,55,76,21,39];
function sortarr(arr){
for(i=0;i<arr.length-1;i++){
for(j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
sortarr(examplearr);
console.log(examplearr)
(十)typeof 和 instanceof 的區別?
01-常用來判斷一個變量是否爲空,或者是什麼類型的
02-在js中,判斷一個基本數據的變量的類型會常用typeof,但是在判斷複雜數據類型的時候,無論是什麼樣的類型都會輸出'object',這就需要用到instanceof來檢測某個對象是不是另一個對象的實例
(十一)for of 與for in 的區別, 對象是否可以使用for of遍歷、
1-for in主要是用來遍歷對象,雖然也可以遍歷數組,但是不推薦使用遍歷數組,因爲for in會遍歷數組的所有可枚舉屬性,包括原型上面的
2-數組的for in的遍歷結果是數組的索引,且都爲字符串型,不能用於運算
3-for of支持遍歷數組、類對象(例DOM NodeList對象)、字符串、Map對象、Set對象->>for of不支持遍歷普通對象,如果瑤遍歷,和可通過與Object.keys()搭配使用遍歷
4-for of遍歷數組後的輸出結果爲數組元素的值
(十二)獲取頁面中元素的js方法
01-document.getElementById(id名),獲取的是單個元素
02-document.querySelector(可以是id,可以是類,標籤,等等),獲取的是單個元素
03-document.querySelectorAll(選擇器都可以) ,獲取的是一類元素,是個僞數組
04-document.getElementsByTagName(標籤的名字) 獲取的是一類元素,是個僞數組