你在昨天/本週學到了什麼?javascript
編寫代碼的哪些方面可以使你興奮或感興趣?css
談談你喜歡的開發環境。(例如操做系統,編輯器,瀏覽器,工具等等。)html
你能描述一下當你製做一個網頁的工做流程嗎?前端
你能描述一下漸進加強和優雅降級之間的不一樣嗎?html5
答案:java
何爲漸進加強、優雅降級jquery
經常使用兩種策略:要麼優雅降級(graceful degradation,一開始就構建站點的完整功能,而後針對瀏覽器測試和修復),要麼漸進加強(progressive enhancement,一開始只構建站點的最少特性,而後不斷針對各瀏覽器追加功能。web
萬一你正撓着後腦勺,試圖找出「優雅降級」和「漸進加強」之間的差異,那麼我能夠告訴你:「它們是看待同種事物的兩種觀點」。「優雅降級」和「漸進 加強」都關注於同一網站在不一樣設備裏不一樣瀏覽器下的表現程度。關鍵的區別則在於它們各自關注於何處,以及這種關注如何影響工做的流程。chrome
請解釋一下什麼是「語義化的 HTML」。數據庫
答案:分離結構與表現的另外一個重要方面是使用語義化的標記來構造文檔內容。一個 XHTML 元素的存在就意味被標記內容的那部分有相應的結構化的意義,沒有理由使用其餘的標記。換句話說,不要讓 CSS 使一個 HTML 元素看起來就像另外一個 HTML 元素,好比用<div>來代替<p>標記標題。
首先是關於語義(Semantics)和默認樣式的區別,默認樣式是瀏覽器設定的一些經常使用tag的表現形式,我的認爲他的主要目的就是讓你們直觀的 認識標籤(markup)和屬性(attribute)的用途和做用,很明顯Hx系列看起來很像標題,由於擁有粗體和較大的字 號。<strong>,<em>用來區別於其餘文字,起到了強調的做用。至於列表和表格很明顯的告訴你他們是作什麼的。
其次,語義化的網頁的好處,最主要的就是對搜索引擎友好,又了良好的結構和語義你的網頁內容天然容易被搜索引擎抓取,你網站的推廣即可以省下很多的功夫。
你如何對網站的文件和資源進行優化?
期待的解決方案包括:
* 文件合
文件最小化/文件壓
使用 CDN 託
緩存的使
其
爲何利用多個域名來提供網站資源會更有效?
請說出三種減小頁面加載時間的方法。(加載時間指感知的時間或者實際加載時間)
若是你參與到一個項目中,發現他們使用 Tab 來縮進代碼,可是你喜歡空格,你會怎麼作?
建議這個項目使用像 EditorConfig (http://editorconfig.org/) 之類的規
爲了保持一致性,接受項目原有的風
直接使用 VIM 的 retab 命
請寫一個簡單的幻燈效果頁面
使用打了CSS3
你都使用哪些工具來測試代碼的性能?
若是今年你打算熟練掌握一項新技術,那會是什麼?
請談一下你對網頁標準和標準制定機構重要性的理解。
什麼是 FOUC(無樣式內容閃爍)?你如何來避免 FOUC?
什麼是FOUC(文檔樣式短暫失效)?
若是使用import方法對CSS進行導入,會致使某些頁面在Windows 下的Internet Explorer出現一些奇怪的現象:以無樣式顯示頁面內容的瞬間閃爍,這種現象稱之爲文檔樣式短暫失效(Flash of Unstyled Content),簡稱爲FOUC。
緣由大體爲:
1,使用import方法導入樣式表。
2,將樣式表放在頁面底部
3,有幾個樣式表,放在html結構的不一樣位置。
其實原理很清楚:當樣式表晚於結構性html加載,當加載到此樣式表時,頁面將中止以前的渲染。此樣式表被下載和解析後,將從新渲染頁面,也就出現了短暫的花屏現象。
解決方法:
使用LINK標籤將樣式表放在文檔HEAD中。
doctype
(文檔類型)的做用是什麼?你知道多少種文檔類型?
一、doctype(文檔類型)的做用是什麼?
doctype是DocumentType的簡稱即文檔類型,doctype聲明位於文檔中最前面的位置,處於標籤以前,告知瀏覽器使用的是哪一種規範。
二、你知道多少種文檔類型?
常見的文檔類型有 Strict、Transitional 以及 Frameset 三種。
三、文檔爲何要分類型?
若是文檔不分類型,各瀏覽器就會造成多種寫法,假如IE用<title>標籤做爲標題、火狐瀏覽器用<caption>標籤做爲標題,而另外一種瀏覽器可能採用<mytitle>,這對於開發者和用戶來講簡直是災難。W3C(萬 維網聯盟World Wide Web Consortium)製做了對全部方面都平衡的分歧解決方案,而且各瀏覽器沒有異議,因而用<!doctype>(注意:做爲一個特殊的標 籤,它是不須要閉合的)標籤來引入W3C的dtd文件,以達到規範頁面的效果。這爲瀏覽器的文檔標準的統一以及開發人員和用戶帶了了便利。而html5不是基於SGML實現的,所以html不須要引入DTD,因此html5能夠簡單的聲明一下<!doctype html>。
四、若是不聲明doctype?
不寫doctype,瀏覽器會進入quirks mode (混雜模式)。即,若是不聲明doctype,瀏覽器不引入w3c的標準,那麼早期的瀏覽器會按照本身的解析方式渲染頁面。瀏覽器採用自身方式解析頁面的行爲稱爲"quirks mode(混雜模式也稱怪異模式)";採用w3c方式解析就是"strict mode(標準模式)"。 若是徹底採用strictmode就不會出任何的差錯,但這樣會下降程序的容錯率,加劇開發人員的難度,所以在standards mode 裏面分出來 Almost Standards Mode(接近標準模式)。如圖所示:
5、如何判斷瀏覽使用哪一種方式解析css?
沒有doctype聲明的採用quirks mode解析,對於有doctype的大多數採用standard mord。特殊狀況:對於那些瀏覽器不能識別的doctype ,瀏覽器採用quirks mode;沒有聲明DTD或者html版本聲明低於4.0採用quirks mode,其餘使用standard mode;ie6中,若是在doctype聲明前有一個xml聲明(好比:<?xml version="1.0" encoding="iso-8859-1"?>),則採用quirks mode解析。
六、瀏覽器標準模式和怪異模式之間的區別是什麼?
標準模式:瀏覽器根據規範呈現頁面混雜模式(怪異模式):頁面以一種比較寬鬆的兼容方式顯示。
他們最大的不一樣是對盒模型的解析。
如:在strict mode中 :width是內容寬度 ,也就是說,元素真正的寬度 = margin-left + border-left-width + padding-left + width + padding-right + border-right- width + margin-right;
在quirks mode中 :width則是元素的實際寬度 ,內容寬度 = width - (margin-left + margin-right + padding-left + padding-right + border-left-width + border-right-width)
七、js如何判斷瀏覽器正在以何種方式解析?
使用 document.compatMode來判斷瀏覽器的解析方式。
例如:
function getMode{
var _cm = docoment.compatMode;
if(_cm == 'CSS1Compat'){
return "strict"
}
if(_cm == 'BackCompat' ){
return 'quirks'
}
}
八、什麼時候使用document.body 什麼時候使用document.documentElement?
在quirks 模式下,document.documentElement沒法正確取到clietHeight scrollHeight等值,好比clietHeight=0,此時計算頁面高度的時候須要用document.body來代替document.documentElement.
document.body是 DOM中Document對象裏的body節點, document.documentElement是文檔對象根節點(html)的引用。 document.body.scrollHeight是 body元素的滾動高度,document.documentElement.scrollHeight爲頁面的滾動高度。瀏覽器標準模式和怪異模式之間的區別是什麼?
混雜模式(怪異模式):頁面以一種比較寬鬆的兼容方式顯示。
他們最大的不一樣是對盒模型的解析。
如:在strict mode中 :width是內容寬度 ,也就是說,元素真正的寬度 = margin-left + border-left-width + padding-left + width + padding-right + border-right- width + margin-right;
在quirks mode中 :width則是元素的實際寬度 ,內容寬度 = width - (margin-left + margin-right + padding-left + padding-right + border-left-width + border-right-width)
使用 XHTML 的侷限有哪些?
答案:A:XHTML較爲嚴格,標籤必須閉合,必需要body,head等
若是頁面使用 'application/xhtml+xml' 會有什麼問題嗎
若是網頁內容須要支持多語言,你會怎麼作?
答案:採用統一編碼UTF-8模式
在設計和開發多語言網站時,有哪些問題你必需要考慮
data-
屬性的做用是什麼?
Resig在2008年在其博客中介紹過HTML5的data-屬性,現現在HTML5在如火如荼地推廣,彷佛國內的技術有些延遲,這篇博文能夠在這裏找到。
data-爲前端開發者提供自定義的屬性,這些屬性集能夠經過對象的dataset屬性獲取,不支持該屬性的瀏覽器能夠經過 getAttribute方法獲取。ppk提到過使用rel屬性,lightbox庫推廣了rel屬性,HTML5提供了data-作替代,這樣能夠更好 地使用自定義的屬性。
須要注意的是,data-以後的以連字符分割的多個單詞組成的屬性,獲取的時候使用駝峯風格。
並非全部的瀏覽器都支持.dataset屬性,測試的瀏覽器中只有Chrome和Opera支持
若是把 HTML5 看做作一個開放平臺,那它的構建模塊有哪些?
請描述一下 cookies,sessionStorage 和 localStorage 的區別?
描述下 「reset」 CSS 文件的做用和使用它的好處。
其實簡單的說就是重置瀏覽器的CSS默認屬性。
由於瀏覽器的品種不少,每一個瀏覽器的默認樣式也是不一樣的,好比<button>標籤,在IE瀏覽器、Firefox瀏覽器以及Safari瀏覽器中的樣式都是不一樣的,因此,經過重置button標籤的CSS屬性,而後再將它統必定義,就能夠產生相同的顯示效果。
最簡單的CSS Reset內容寥寥幾行就能完成:
* { padding: 0; margin: 0; border: 0; }
這個方法讓全部的選擇器的padding、margin和border都設置成0。也有內容更多的,好比YUI的CSS Reset內容:
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre, form,fieldset,input,textarea,p,blockquote,th,td {}
解釋下浮動和它的工做原理。
列舉不一樣的清除浮動的技巧,並指出它們各自適用的使用場景。
解釋下 CSS sprites,以及你要如何在頁面或網站中使用它。
你最喜歡的圖片替換方法是什麼,你如何選擇使用。
討論CSS hacks,條件引用或者其餘。
如何爲有功能限制的瀏覽器提供網頁?
如何視覺隱藏網頁內容,只讓它們在屏幕閱讀器中可用?
你用過柵格系統嗎?若是使用過,你最喜歡哪一種?
你用過媒體查詢,或針對移動端的佈局/CSS 嗎?
你熟悉 SVG 樣式的書寫嗎?
如何優化網頁的打印樣式?
在書寫高效 CSS 時會有哪些問題須要考慮?
使用 CSS 預處理器的優缺點有哪些?(SASS,Compass,Stylus,LESS)
若是設計中使用了非標準的字體,你該如何去實現?
解釋下瀏覽器是如何判斷元素是否匹配某個 CSS 選擇器?
解釋一下你對盒模型的理解,以及如何在 CSS 中告訴瀏覽器使用不一樣的盒模型來渲染你的佈局。
解釋下事件代理。
解釋下 JavaScript 中 this
是如何工做的。
解釋下原型繼承的原理。
AMD vs. CommonJS?
參考答案: AMD是依賴提早加載,CMD是依賴延時加載
什麼是哈希表?
解釋下爲何接下來這段代碼不是 IIFE(當即調用的函數表達式):function foo(){ }();
.
描述如下變量的區別:null
,undefined
或 undeclared
?
什麼是閉包,如何使用它,爲何要使用它?
請舉出一個匿名函數的典型用例?
解釋 「JavaScript 模塊模式」 以及你在什麼時候使用它。
若是有提到無污染的命名空間,能夠考慮加分
若是你的模塊沒有本身的命名空間會怎麼樣
你是如何組織本身的代碼?是使用模塊模式,仍是使用經典繼承的方法?
請指出 JavaScript 宿主對象和原生對象的區別?
指出下列代碼的區別: `javascrip
function Person()
some cod
}var person = Person();var person = new Person();`
.call
和 .apply
的區別是什麼?
undefined
和 null
的區別是什麼?
請解釋 Function.prototype.bind
的做用?
你什麼時候優化本身的代碼?
你能解釋一下 JavaScript 中的繼承是如何工做的嗎?
在何時你會使用 document.write()
?
document.write()
,雖然這種用法會讓人很不爽請指出瀏覽器特性檢測,特性推斷和瀏覽器 UA 字符串嗅探的區別?
請儘量詳盡的解釋 AJAX 的工做原理。
請解釋 JSONP 的工做原理,以及它爲何不是真正的 AJAX。
你使用過 JavaScript 模板系統嗎?
請解釋變量聲明提高。
請描述下事件冒泡機制。
"attribute" 和 "property" 的區別是什麼?
爲何擴展 JavaScript 內置對象不是好的作法?
爲何擴展 JavaScript 內置對象是好的作法?
請指出 document load 和 document ready 兩個事件的區別。
==
和 ===
有什麼不一樣?
你如何從瀏覽器的 URL 中獲取查詢字符串參數。
請解釋一下 JavaScript 的同源策略。
請描述一下 JavaScript 的繼承模式。
如何實現下列代碼: `javascrip
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]`
描述一種 JavaScript 中實現 memoization(避免重複運算)的策略。
什麼是三元表達式?「三元」 表示什麼意思?
函數的參數元是什麼?
什麼是 "use strict";
? 使用它的好處和壞處分別是什麼?
解釋"chaining"。
函數中的鏈式結構,如$().().()
解釋"deferreds"。 延遲執行,減小回調函數的嵌套
你知道哪些針對 jQuery 的優化方法。
參考答案:(1) 用ID選擇器 (2) 緩存jquery對象,方便後面使用。(3)使用data緩存數據.
請解釋 .end()
的用途。.
參考答案:<div id="test">
<h1>jQuery end()方法</h1>
<p>講解jQuery中end()方法。</p>
</div>
JS代碼:
$(document).ready(function() {
$("#test").click(function() {
$(this).find("p").hide().end().hide();
});
});
點擊id爲test的div時,首先找到div裏邊的p標籤,將其隱藏。接下來使用end()方法結束了對p標籤的引用,此時返回的是#test(jQuery對象),從然後邊的hide()方法隱藏了div。這樣相信你們已經理解了jQuery中end()方法。
你如何給一個事件處理函數命名空間,爲何要這樣作?
請說出你能夠傳遞給 jQuery 方法的四種不一樣值。
什麼是效果隊列?
請指出 .get()
,[]
,eq()
的區別。
參考答案:<p style="color:yellow">緋雨</p>
使用eq來得到第一個p標籤的color值:
$("p").eq(0).css("color") //由於eq(num)返回的是個jq對象,因此能夠用jq的方法css
使用get來得到第一個p標籤的color值:
$("p").get(0).style.color //由於get(num)返回的是個html對象,因此要使用傳統的HTML對象方法,jq對象此時就沒用了。
固然,你也能夠get(num)後把對象轉爲jq的對象再進行操做:
$($("p").get(0)).css("color")
請指出 .bind()
,.live()
和 .delegate()
的區別。
請指出 $
和 $.fn
的區別,或者說出 $.fn
的用途。
請優化下列選擇器: `javascrip
$(".foo div#bar:eq(0)")`
`javascrip
~~3.14`
問題:上面語句的返回值是什麼? 答案:3
`javascrip
"i'm a lasagna hog".split("").reverse().join("");`
問題:上面的語句的返回值是什麼? 答案:"goh angasal a m'i"
`javascrip
( window.foo || ( window.foo = "bar" ) );`
問題:window.foo 的值是什麼? 答案:"bar" 只有 window.foo 爲假時的纔是上面答案,不然就是它自己的值。
`javascrip
var foo = "Hello"; (function() { var bar = " World"; alert(foo + bar); })(); alert(foo + bar);`
問題:上面兩個 alert 的結果是什麼 答案: "Hello World" 和 ReferenceError: bar is not defined
`javascrip
var foo = []
foo.push(1)
foo.push(2);`
問題:foo.length 的值是什麼? 答案:2
`javascrip
var foo = {}
foo.bar = 'hello';`
問題:foo.length 的值是什麼? 答案: undefined
你編寫過的最酷的代碼是什麼?其中你最自豪的是什麼?
在你使用過的開發工具中,最喜歡哪一個?
你有什麼業餘項目嗎?是哪一種類型的?
你最愛的 IE 特性是什麼?
你是否正在或曾經在一艘船上。(不懂這個幽默)
這句話是直譯。在英語裏
ship
有一個很重要的意思是交付
,因此這句話能夠理解爲:你是否正在或曾經交付過產品?(也就是正在一個產品項目的開發過程當中,或是已經交付過開發完成的產品或項
獨角獸是西方文化中很是廣泛的一種吉祥物圖騰,相似於中國的龍鳳麒麟一類。在西方,開發者常使用獨角獸 + 彩虹的設計風格來生成一些裝飾用的圖像/動畫,這些東西能夠用來對網站進行一種美化。然而是否真的算美化那就見仁見智了,能夠僅僅看作是一種人文文化在開 發者世界裏的影射
在一張紙上,垂直寫下ABCDE,而後不用任何代碼,將他們到序排列。
海盜仍是忍者?
海盜與忍者之爭是互聯網文化「動漫化」的標誌性話題。首先,它們都很酷,都深受 Geeks 的喜好,然而他們卻各自表明了一種不一樣的風格。海盜是西式的,崇尚「工具化」,刀劍和槍炮是他們稱霸的依仗;忍者則是東方文化的典型,更注重精神和內在的 修行,摒棄「外物依賴」。對於開發者而言,兩者的結合固然是最完美的。至於殭屍猴子,大概是說不拘泥於「外物」和「內在」之爭,更加開放,更加包容的意 思。
若是沒有在Web開發,你會作什麼?
卡門聖迭哥的隱藏處在哪裏?
完句填空: Brendan Eich和Douglas Crockford是JavaScript的__。
討論:jQuery是牛逼的庫仍是最牛逼的庫。