高頻前端js面試題(一)

1.介紹 js 的基本數據類型?
Undefined、 Null 、 Boolean 、 Number 、 String
2.怎樣判斷一個元素是否爲一個數組?
方法一:isArray
var arr = [1,2,3];
console.log(Array.isArray(arr));
方法二:instanceof array
var a = new Array();
console.log(a instanceof Array) //true
3.innerHtml與innerText的區別?

1.innerHTML指的是從對象的起始位置到終止位置的所有內容,包括Html標籤。css

2.innerText 指的是從起始位置到終止位置的內容,但它去除Html標籤。前端

<div id="test">這是一段
    <span>代碼</span>
</div>
console.log(document.getElementById('test').innerHtml) //這是一段代碼
console.log(document.getElementById('test').innerText) //這是一段<span>代碼</span>
4.get與post區別?

1.get 請求經過url傳值,post請求經過body傳值jquery

2.post請求比get更安全es6

5.js去除重複值?
方法一: es5
Array.prototype.test=function(){
 var arr=[];//建立新數組
 for(var i=0;i<this.length;i++){ //遍歷當前數組
 if(arr.indexOf(this[i])===-1){//若是等於-1,那麼也是就是新數組中沒有一項和當前數組同樣
   arr.push(this[i])
}
}
return arr;
}
//調用:ary.test()
方法二:es6
[...new Set([1,1,2,2,3,3])];//[1,2,3]
6.進行性能優化

1,圖片懶加載;json

2,瀏覽器緩存;跨域

3,DNS優化:數組

DNS查詢:
    <meta rel='dns-prefetch' href='//cdn.bootcss.com'/>
    <link rel='dns-prefetch' href='//s.happymmall.com'>
    <link rel='dns-prefetch' href='//img.happymmall.com'>
7.跨域及解決跨域的方法?
> 跨域:瀏覽器對js同源策略的限制。前端調用後臺數據域名不同就形成了跨越。

> 同源策略:請求的url必須與服務器上面的url處於同域上。即域名,端口號,協議同樣

>  解決跨域:
>  - 1.用基於jquery的jsonp方法經過get請求來解決,不能用post請求
>   -2.用基於script標籤實現跨域
8.var,const,let三者區別

1.從做用域的角度:瀏覽器

  • es5只有全局做用域和函數做用域,沒有塊級做用域
  • const與let都是塊級做用域,var是全局做用域

2.從聲明變量角度:緩存

  • const只能聲明賦值一次,第二次會報錯;
  • let聲明的變量只在let命令所在的代碼塊內有效,let能夠重複賦值,可是若是在聲明let變量以前使用,會報錯

文中的代碼可能不必定是最優代碼,要是你有更好的代碼歡迎評論。喜歡的能夠給我點贊鼓勵哦!
碼字不易,屏幕前的大帥比,更多幹貨文章請關注!!!安全

更多幹貨文章請關注

備註:
★部分素材來自網絡,版權歸原創者,若有侵權請聯繫刪除

本文由博客羣發一文多發等運營工具平臺 OpenWrite 發佈
相關文章
相關標籤/搜索