1.知道JavaScript中的原型是什么嗎?什么是原型鏈巴帮?能手寫一個原型鏈繼承的例子嗎?
答:
(1)在javascript中每個對象都保持著一塊隱藏的狀態(tài)——一個對另一個對象的引用也被稱為原型虐秋。
(2)原型鏈的定義:Javascript對象上都有一個內(nèi)部指針【prototype】榕茧,指向它的原型對象,而原型對象的內(nèi)部指針【【prototype】】也指向它的原型對象客给,直到原型對象為null用押,這樣形成的鏈條稱為原型鏈。
也就是說起愈,由于原型對象也有一個proto指針只恨,又指向了另外一個原型,一個接一個抬虽,就形成了原型鏈官觅。
(3)
1 function Name(){
2 this.name=function(){
3 console.log("killua")
4 }
5 }
6 function Firstname(){
7 this.firstname=function(){
8 console.log("L")
9 }
10 }
11 Name.prototype = new Firstname();
12 var he = new Name();
13 console.log(he.name); //"killua"
14 console.log(he.firstname); //"L"
原型鏈繼承的例子來自:
作者:曉綾
鏈接:http://www.reibang.com/p/6a0ca6199550
來源:簡書
2.知道什么是Webpack嗎?說說你理解的Webpack?
答:
- webpack是一款用戶打包前端模塊的工具阐污。主要是用來打包在瀏覽器端使用的javascript的休涤,同時也能轉(zhuǎn)換、捆綁、打包其他的靜態(tài)資源功氨。
- webpack需要編寫一個config文件序苏,然后根據(jù)這個文件來執(zhí)行需要的打包功能。
- webpack可以看作是一個模塊打包機:它分析你的不同的項目結(jié)構(gòu)捷凄,找到j(luò)avascript模塊以及其他的一些瀏覽器不能直接運行的拓展語言忱详,并將其打包為合適的格式以供瀏覽器使用。模塊化可以讓我們把復(fù)雜的程序細化為小的文件跺涤。
3.說一下你知道的能影響頁面布局的CSS屬性匈睁?
答:
CSS常用屬性:
- 字體屬性:(font)
- 大小 font-size: x-large;(特大) xx-small;(極小) 一般中文用不到,只要用數(shù)值就可以桶错,單位:PX航唆、PD
- 樣式 font-style: oblique;(偏斜體) italic;(斜體) normal;(正常)
- 行高 line-height: normal;(正常) 單位:PX、PD院刁、EM
- 粗細 font-weight: bold;(粗體) lighter;(細體) normal;(正常)
- 變體 font-variant: small-caps;(小型大寫字母) normal;(正常)
- 大小寫 text-transform: capitalize;(首字母大寫) uppercase;(大寫) lowercase;(小寫) none;(無)
- 修飾 text-decoration: underline;(下劃線) overline;(上劃線) line-through;(刪除線) blink;(閃爍)
- 常用字體: (font-family)
"Courier New", Courier, monospace, "Times New Roman", Times, serif, Arial, Helvetica, sans-serif, Verdana - 背景屬性: (background)
- 色彩background-color: #FFFFFF;
- 圖片background-image: url();
- 重復(fù)background-repeat: no-repeat;
- 滾動background-attachment: fixed;(固定) scroll;(滾動)
- 位置background-position: left(水平) top(垂直);
- 簡寫方法 background:#000 url(..) repeat fixed left top;
- 區(qū)塊屬性: (Block)
- 字間距l(xiāng)etter-spacing: normal; 數(shù)值
- 對齊text-align: justify;(兩端對齊) left;(左對齊) right;(右對齊) center;(居中)
- 縮進text-indent: 數(shù)值px;
- 垂直對齊vertical-align: baseline;(基線) sub;(下標(biāo)) super;(下標(biāo)) top; text-top; middle; bottom; text-bottom;
- 詞間距word-spacing: normal; 數(shù)值
- 空格white-space: pre;(保留) nowrap;(不換行)
- 顯示display:block;(塊) inline;(內(nèi)嵌) list-item;(列表項) run-in;(追加部分) compact;(緊湊) marker;(標(biāo)記) table; inline-table; table-raw-group; table-header-group; table-footer-group; table-raw; table-column-group; table-column; table-cell; table-caption;(表格標(biāo)題)
- 方框?qū)傩裕?(Box)
width:; height:; float:; clear:both; margin:; padding:; 順序:上右下左 - 邊框?qū)傩裕?(Border)
border-style: dotted;(點線) dashed;(虛線) solid; double;(雙線) groove;(槽線) ridge;(脊?fàn)? inset;(凹陷) outset;
border-width:; 邊框?qū)挾?br> border-color:#; - 簡寫方法border:width style color;
- 列表屬性: (List-style)
- 類型list-style-type: disc;(圓點) circle;(圓圈) square;(方塊) decimal;(數(shù)字) lower-roman;(小羅碼數(shù)字) upper-roman; lower-alpha; upper-alpha;
- 位置list-style-position: outside;(外) inside;
- 圖像list-style-image: url(..);
- 定位屬性: (Position)
Position: absolute; relative; static;
visibility: inherit; visible; hidden;
overflow: visible; hidden; scroll; auto;
clip: rect(12px,auto,12px,auto) (裁切)
4.說說你對CSS盒模型的理解糯钙?知道box-sizing是什么嗎?
答:
(1)標(biāo)準(zhǔn)的CSS和子模型是由margin(邊界)退腥、border(邊框)任岸、padding(空白)和content(內(nèi)容)幾個屬性組成。
- margin(邊界):外邊距阅虫,用來設(shè)置內(nèi)容與內(nèi)容之間的距離演闭。
- border(邊框):可以設(shè)置內(nèi)容邊線框的粗細不跟、顏色和樣式等颓帝。
- padding(空白):也稱頁邊距或補白,用來設(shè)置內(nèi)容和邊框之間的間距窝革。
-
content(內(nèi)容):盒子模型中必須的部分购城,可以是文字、圖片等元素虐译。
(2)box-sizing屬性允許您以特定的方式定義匹配某個區(qū)域的特定元素瘪板,默認值是content-box,設(shè)置或檢索對象的盒模型組成模式,對應(yīng)的腳本腳本特性為boxsizing漆诽。
5.說一下CSS屬性中display中的block侮攀、inline和inline-block概念和區(qū)別。
block-level elements(塊級元素)
block元素通常為獨立一塊厢拭,會單獨換一行兰英。
inline elements(內(nèi)聯(lián)元素)
inline元素前后不會產(chǎn)生換行,一系列inline元素都在一行內(nèi)顯示直到該行排滿供鸠。
- block元素包括block元素和inline元素畦贸,inline元素只能包括inline元素。
inline-block
簡單來說就是將對象呈現(xiàn)為inline對象,但是對象的內(nèi)容作為block對象呈現(xiàn)薄坏,之后的內(nèi)聯(lián)對象會被排在同一行內(nèi)趋厉。
6.如果要你寫一個百度搜索的首頁,你覺得你會用到哪些HTML標(biāo)簽胶坠?
<君账!DOCTYPE HTML>
<html></html>
<head></head>
<title></title>
<body></body>
<p></p>
<font></font>
<span></span>
<B></B>
<I></I>
7.說下你對前端的看法?
Web前端開發(fā)技術(shù)包括三個要素:HTML沈善、CSS和JavaScript杈绸,但隨著RIA的流行和普及,F(xiàn)lash/Flex矮瘟、Silverlight瞳脓、XML和服務(wù)器端語言也是前端開發(fā)工程師應(yīng)該掌握的。Web前端開發(fā)工程師既要與上游的交互設(shè)計師澈侠、視覺設(shè)計師和產(chǎn)品經(jīng)理溝通劫侧,又要與下游的服務(wù)器端工程師溝通,需要掌握的技能非常多哨啃。這就從知識的廣度上對Web前端開發(fā)工程師提出了要求烧栋。如果要精于前端開發(fā)這一行,也許要先精十行。然而,全才總是少有的着降。所以沈堡,對于不太重要的知識,我們只需要"通"即可航缀。但"通"到什么程度才算夠用呢?對于很多初級前端開發(fā)工程師來說,這個問題是非常令人迷惑的。
Web發(fā)展的很快酬姆,甚至可以說這些技術(shù)幾乎每天都在變化!如果沒有快速學(xué)習(xí)能力,就跟不上Web發(fā)展的步伐奥溺。前端工程師必須不斷提升自己辞色,不斷學(xué)習(xí)新技術(shù)、新模式;僅僅依靠今天的知識無法適應(yīng)未來浮定。Web的明天與今天必將有天壤之別相满,而前端工程師的工作就是要搞清楚如何通過自己的Web應(yīng)用程序來體現(xiàn)這種翻天覆地的變化。前端開發(fā)的入門門檻其實非常低桦卒,與服務(wù)器端語言先慢后快的學(xué)習(xí)曲線相比立美,前端開發(fā)的學(xué)習(xí)曲線是先快后慢。所以闸盔,對于從事IT工作的人來說悯辙,前端開發(fā)是個不錯的切入點。也正因為如此,前端開發(fā)領(lǐng)域有很多自學(xué)成"才"的同行躲撰,但大多數(shù)人都停留在會用的階段针贬,因為后面的學(xué)習(xí)曲線越來越陡峭,每前進一步都很難拢蛋。
另一方面桦他,正如前面所說,前端開發(fā)是個非常新的職業(yè)谆棱,對一些規(guī)范和最佳實踐的研究都處于探索階段快压。總有新的靈感和技術(shù)不時閃現(xiàn)出來垃瞧,例如CSS sprite蔫劣、懸浮定位、負邊距布局个从、柵格布局等;各種JavaScript框架層出不窮脉幢,為整個前端開發(fā)領(lǐng)域注入了巨大的活力;瀏覽器大戰(zhàn)也越來越白熱化,跨瀏覽器兼容方案依然是五花八門嗦锐。為了滿足"高可維護性"的需要嫌松,需要更深入、更系統(tǒng)地去掌握前端知識奕污,這樣才可能創(chuàng)建一個好的前端架構(gòu)萎羔,保證代碼的質(zhì)量。
前端工程師碳默,也叫Web前端開發(fā)工程師贾陷。他是隨著web發(fā)展,細分出來的行業(yè)腻窒。Web前端開發(fā)技術(shù)主要包括三個要素:HTML昵宇、CSS和JavaScript!HTML甚至不是一門語言磅崭,僅僅是簡單的標(biāo)記語言!CSS只是無類型的樣式修飾語言儿子。當(dāng)然可以勉強算作弱類型語言。Javascript的基礎(chǔ)部分相對來說不難砸喻,入手還算快柔逼。
前端開發(fā)的入門門檻很低,與服務(wù)器端語言先慢后快的學(xué)習(xí)曲線相比割岛,前端開發(fā)的學(xué)習(xí)曲線是先快后慢愉适。也正因為如此,前端開發(fā)領(lǐng)域有很多自學(xué)成"才"的同行癣漆,但大多數(shù)人都停留在會用的階段维咸,因為后面的學(xué)習(xí)曲線越來越陡峭,每前進一步都很難。人們常說:不想當(dāng)裁縫的司機癌蓖,不是個好廚師瞬哼。如果單純只是學(xué)習(xí)前端編程語言、而不懂后端編程語言(PHP租副、ASP.NET坐慰,JSP、Python)用僧,也不能算作是優(yōu)秀的前端工程師结胀。在成為一個優(yōu)秀的前端工程師的道路上,充滿了汗水和辛勞责循。
8.了解Node.js嗎糟港?Node.js相比PHP有哪些優(yōu)勢和劣勢?
優(yōu)勢:
- 處理高并發(fā)場景性能高院仿。
- 函數(shù)式編程非常適合寫異步回調(diào)連着逐。
劣勢: - 大量匿名函數(shù)使異常棧變得不好看。
- 無法以request為單位catch異常意蛀。