今天面的這一家剛進去就讓作面試題,對於兩三個月沒有好好敲代碼和複習的我來講:懵css
不過此次面試仍是在面試官身上學到了不少的東西,頗有意義。前端
下面是面試全部的面試題:vue
0.30000000000000004
web
這道面試題去年就遇到了,主要是由於JavaScript中的二進制的浮點數0.1和0.2並非十分精確,因此他們相加的結果並不是正好等於0.3,而是一個比較接近與0.3的數字。
都是曾經或者如今比較火的前端框架,不能說哪一種更好,只是每種都有本身適用的場景和項目類型。如下是個人回答:
jQuery主要是節點操做函數,比較輕量級,適用於小型項目。
angular是標準的MVVM模型,總體框架開發的比較完善,也有較多的成熟的UI庫使用,變量操做數據特別方便,
可是總體比較笨重,適用於大型企業項目。(最喜歡)
vue是比較輕量級的開發特別完善的前端框架,主打輕量級,也是用節點操做函數,不算是很標準的MVVM模型,
適用於中小型項目。(學習不是很精通)複製代碼
給 <body> 標籤添加上 pointer-events: none 樣式複製代碼
js做爲瀏覽器的腳本語言,主要是實現用戶與瀏覽器的交互,以及操做dom;這決定了它只能是單線程,不然會帶
來很複雜的同步問題。
舉個例子:若是js被設計成了多線程,若是有一個線程要修改一個dom元素,另外一個線程要刪除這個dom元素,此
時瀏覽器救會一臉茫然,不知所措。因此爲了不復雜性,從一誕生,js就是單線程的,而且不會改變。複製代碼
web標準簡單來講能夠分爲結構、表現和行爲。其中 結構 主要是由HTML標籤組成,或通俗點講,在頁面的
body裏面咱們寫入的標籤都是爲了頁面結構。 表現 即css樣式表,經過css可使頁面標籤更具美感。
行爲 是指頁面和用戶具備必定的交互,同時頁面結構或者表現發生變化,主要由js組成。(WEB標準通常
將三部分獨立分開。使其具備模塊化)
W3C對web標準提出了規範化要求,也就是在實際編程中的一些代碼規範:包含以下幾點
1. 對於結構(HTML)要求:(標籤規範能夠提升搜索引擎對頁面的抓取效率,對SEO頗有幫助)
a. 標籤字母要小寫
b. 標籤要閉合
c. 標籤不容許隨意嵌套
2. 對於表現(css)和行爲(js)要求:
a. 儘可能使用外鏈css樣式表和js腳本。是結構、表現和行爲分爲三塊,符合規範。同時提升頁面渲染速度,
提升用戶的體驗。
b. 樣式儘可能少用行間樣式表,使結構與表現分離,標籤的id和class等屬性命名要作到見文知義,
標籤越少,加載越快,用戶體驗提升,代碼維護簡單,便於改版。
c. 不須要變更頁面內容,即可提供打印版本而不須要複製內容,提升網站易用性。複製代碼
塊級元素:div p h1 h2 h3 h4 form ul
行內元素: a b br i span input selectCss
盒模型:內容,border ,margin,padding複製代碼
方法一:
function uniques(arr) {
if(arr instanceof Array) {
return Array.from(new Set(arr));
} else {
console.error('wrong type');
}
}
方法二:
function unique(arr) {
if (arr instanceof Array) {
const res = new Map();
return arr.filter( a => !res.has(a) && res.set(a, 1))
} else {
console.error('wrong type');
}
}複製代碼
10. 「==」與「===」的不一樣?面試
首先,「==」 equality 等同, 「===」 identity 恆等。
「==」,兩邊值類型不一樣的時候,要先進行類型轉換,再比較。
「===」,不作類型轉換,類型不一樣必定不相等。
一言蔽之: ==先轉換類型再作比較, ===先作類型判斷,若是不是同一類型則直接爲false。複製代碼