常見的技術分享

1.null和undefined的區別?
null是一個表示"無"的對象,轉爲數值時爲0;undefined是一個表示無的原始值,轉爲數值時爲NaN。
undefined:
(1)變量被聲明瞭,但沒有賦值時,就等於undefined。
(2) 調用函數時,應該提供的參數沒有提供,該參數等於undefined。
(3)對象沒有賦值的屬性,該屬性的值爲undefined。
(4)函數沒有返回值時,默認返回undefined。
null:
(1) 做爲函數的參數,表示該函數的參數不是對象。
(2) 做爲對象原型鏈的終點。
2.new操做符具體幹了什麼呢?
(1)建立一個空對象,而且 this 變量引用該對象,同時還繼承了該函數的原型。
(2)屬性和方法被加入到 this 引用的對象中。
(3)新建立的對象由 this 所引用,而且最後隱式的返回 this 。
3.call() 和 apply() 的區別和做用?
apply()函數有兩個參數:第一個參數是上下文,第二個參數是參數組成的數組。若是上下文是null,則使用全局對象代替。
如:function.apply(this,[1,2,3]);
call()的第一個參數是上下文,後續是實例傳入的參數序列。
如:function.call(this,1,2,3);
4.有哪些性能優化的方法?
(1) 減小http請求次數:CSS Sprites, JS、CSS源碼壓縮、圖片大小控制合適
(2) 減小因爲HTML標籤致使的帶寬浪費
(3) 用innerHTML代替DOM操做,減小DOM操做次數,優化javascript性能
(4) 當須要設置的樣式不少時設置className而不是直接操做style
(5) 少用全局變量、緩存DOM節點查找的結果。減小IO讀取操做
(6) 圖片預加載,將樣式表放在頂部,將腳本放在底部 加上時間戳
5.清除浮動有哪些方式?比較好的方式是哪種?
(1)父級div定義height。
(2)結尾處加空div標籤clear:both。
(3)父級div定義僞類:after和zoom(good)
(4)父級div定義overflow:hidden。
(5)父級div定義overflow:auto。
(6)父級div也浮動,須要定義寬度。
(7)父級div定義display:table。
(8)結尾處加br標籤clear:both。
6.box-sizing經常使用的屬性有哪些?分別有什麼做用?
(1)box-sizing: content-box|border-box|inherit;
(2)content-box:寬度和高度分別應用到元素的內容框。在寬度和高度以外繪製元素的內邊距和邊框(元素默認效果)。
border-box:元素指定的任何內邊距和邊框都將在已設定的寬度和高度內進行繪製。經過從已設定的寬度和高度分別減去邊框和內邊距才能獲得內容的寬度和高度。
7.簡述一下你對HTML語義化的理解?
(1)用正確的標籤作正確的事情。
(2)html語義化讓頁面的內容結構化,結構更清晰,便於對瀏覽器、搜索引擎解析;
(3)即便在沒有樣式CSS狀況下也以一種文檔格式顯示,而且是容易閱讀的;
(4)搜索引擎的爬蟲也依賴於HTML標記來肯定上下文和各個關鍵字的權重,利於SEO;
(5)使閱讀源代碼的人對網站更容易將網站分塊,便於閱讀維護理解。
8.this對象的理解
(1)this老是指向函數的直接調用者(而非間接調用者);
(2)若是有new關鍵字,this指向new出來的那個對象;
(3)在事件中,this指向觸發這個事件的對象,特殊的是,IE中的attachEvent中的this老是指向全局對象Window;
9.js中的true和false
若是邏輯對象無初始值或者其值爲 0、-0、null、」「、false、undefined 或者 NaN,那麼對象的值爲 false。不然,其值爲 true(即便當自變量爲字符串 「false」 時)!9.js中的true和false
10.cookies,sessionStorage 和 localStorage 的區別?
(1)cookie是網站爲了標示用戶身份而儲存在用戶本地終端上的數據
(2)cookie數據始終在同源的http請求中攜帶,記會在瀏覽器和服務器間來回傳遞javascript

相關文章
相關標籤/搜索