JS基礎(常用)

(一)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(標籤的名字)  獲取的是一類元素,是個僞數組

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章