css優(yōu)先級(jí)關(guān)系: !important(優(yōu)先級(jí)最高 ei m pao teng t)>行內(nèi)>id>類>標(biāo)簽>鏈接
HTML5和CSS3的新標(biāo)簽
HTML5:nav? footer(fo te) header(hai de) section(sai ke shen)? time hgroup? video canvas? audio
CSS3: RGBA opacity text-shadow(tai k s shai dou) box-shadow(bao k s shai dou) border-radius border-image border-color transform
HTML5 引入什么新的表單屬性
date Datalist? datetime(dei te nei mu)time? number output? keygen? ? month? week range? emailurl
h5廢棄了那些標(biāo)簽 del ins b sub sup center u
盒模型包括那些? margin內(nèi)邊距? padding外邊距? border邊框? content內(nèi)容
節(jié)點(diǎn)的類型(DOM)
元素節(jié)點(diǎn) 注釋節(jié)點(diǎn) 屬性節(jié)點(diǎn) 文本節(jié)點(diǎn) 文檔節(jié)點(diǎn)
例舉3種強(qiáng)制類型轉(zhuǎn)換和2種隱式類型轉(zhuǎn)換
強(qiáng)制(parseInt(pa s yin t) parseFloat(p s fu lao t) Number())
隱式(==? !!)
狀態(tài)碼
200 服務(wù)器請(qǐng)求成功
400 服務(wù)器請(qǐng)求錯(cuò)誤
403 服務(wù)器拒絕請(qǐng)求
404 服務(wù)器找不到請(qǐng)求的網(wǎng)頁
500 服務(wù)器錯(cuò)誤
CSS3新增偽類舉例:
p:first(fe si ti)-of-type(tei pu) 選擇屬于其父元素的首個(gè)
元素的每個(gè)
元素
p:last-of-type? 選擇屬于其父元素的最后
元素的每個(gè)
元素
p:only(e lei)-of-type? 選擇屬于其父元素唯一的
元素的每個(gè)
元素
p:only-child? ? 選擇屬于其父元素的唯一子元素的每個(gè)
元素
p:nth-child(2)? 選擇屬于其父元素的第二個(gè)子元素的每個(gè)
元素
enabled disabled 控制表單控件的禁用狀態(tài)
checked 單選框或復(fù)選框被選中
數(shù)組
push在數(shù)組末尾添加一個(gè)或多個(gè)新元素
unshift(ang shei f shi)在數(shù)組開頭添加一個(gè)或多個(gè)新元素
pop(po pe)移除最后一個(gè)元素
shift(shei f t)移除第一個(gè)元素
splice(s p li si)插入、刪除、替換元素
Sort:(sao t)排序
reverse 倒序
join(zhao yin) 講數(shù)組轉(zhuǎn)為字符串
三種定位方式及使用場(chǎng)景
absolute(e b s l u t)
生成絕對(duì)定位的元素,相對(duì)于 static 定位以外的第一個(gè)父元素進(jìn)行定位。
*fixed (老IE不支持)(fai de)
生成絕對(duì)定位的元素,相對(duì)于瀏覽器窗口進(jìn)行定位。
*relative (rui lai t wu )
生成相對(duì)定位的元素,相對(duì)于其正常位置進(jìn)行定位。
數(shù)據(jù)類型:
number(數(shù)字類型)
string(字符串類型)
boolean(布爾類型/true/false)
object(對(duì)象)
undefined(未賦值的變量)
null(空對(duì)象)
This指向
this是js的一個(gè)關(guān)鍵字,隨著函數(shù)使用場(chǎng)合不同,this的值會(huì)發(fā)生變化。
但是總有一個(gè)原則,那就是this指的是調(diào)用函數(shù)的那個(gè)對(duì)象。
this一般情況下:是全局對(duì)象Global。 作為方法調(diào)用,那么this就是指這個(gè)對(duì)象
隨機(jī)數(shù):Parseint(Math.random()*(max-min+1)+min)
事件委托是什么
利用事件冒泡的原理,讓自己所觸發(fā)的事件,讓他的父元素代替執(zhí)行!
什么叫做回調(diào)函數(shù)
函數(shù)A做為參數(shù)(函數(shù)引用)傳遞到另外一個(gè)函數(shù)B中 并且這個(gè)函數(shù)B執(zhí)行這個(gè)函數(shù)A
我們就說函數(shù)A叫做回調(diào)函數(shù) 如果沒有名稱 就叫做匿名回調(diào)函數(shù)
說說什么叫做事件委托
利用事件冒泡的原理 子元素的事件會(huì)冒泡到父元素 可以只給父元素添加事件 通過事件目標(biāo)判斷元素
優(yōu)點(diǎn):節(jié)省內(nèi)存 動(dòng)態(tài)添加的子元素也包含事件
閉包是什么,有什么特性,對(duì)頁面有什么影響
當(dāng)內(nèi)部函數(shù)使用了外部函數(shù)的局部變量時(shí), 產(chǎn)生的一個(gè)對(duì)象(包含了所有使用了的變量)
作用: 在函數(shù)執(zhí)行完后, 局部變量還會(huì)存在
缺點(diǎn):浪費(fèi)資源 浪費(fèi)內(nèi)存
什么是事件監(jiān)聽:
事件監(jiān)聽就是為某一個(gè)事件準(zhǔn)備一個(gè)函數(shù) 如果事件被觸發(fā)了就執(zhí)行函數(shù)
冒泡型事件:事件按照從最特定的事件目標(biāo)到最不特定的事件目標(biāo)(document對(duì)象)的順序觸發(fā)。
捕獲型事件:事件從最不精確的對(duì)象(document 對(duì)象)開始觸發(fā),然后到最精確(也可以在窗口級(jí)別捕獲事件,不過必須由開發(fā)人員特別指定)
預(yù)解析:
在當(dāng)前作用域下,js運(yùn)行之前,會(huì)把帶有var和function關(guān)鍵字的事先聲明,并在內(nèi)存中安排好。然后再從上到下執(zhí)行js語句。
預(yù)解析只會(huì)發(fā)生在通過var定義的變量和function上。
作用域: 作用域就是變量與函數(shù)的可訪問范圍,作用域控制著變量與函數(shù)的可見性和生命周期。
在JavaScript中 變量的作用域有全局作用域和局部作用域兩種。
閉包:閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。由于在Javascript語言中,只有函數(shù)內(nèi)部的子函數(shù)才能讀取局部變量,
因此可以把閉包簡單理解成"定義在一個(gè)函數(shù)內(nèi)部的函數(shù)"。所以,在本質(zhì)上,閉包就是將函數(shù)內(nèi)部和函數(shù)外部連接起來的一座橋梁,
閉包雖然解決了局部變量不能訪問的問題但也會(huì)浪費(fèi)很多內(nèi)存資源也會(huì)導(dǎo)致內(nèi)存泄漏
什么是面向?qū)ο螅喊褦?shù)據(jù)及對(duì)數(shù)據(jù)的操作方法放在一起,作為一個(gè)相互依存的整體——對(duì)象。
對(duì)同類對(duì)象抽象出其共性,形成類。類中的大多數(shù)數(shù)據(jù),只能用本類的方法進(jìn)行處理。類通過一個(gè)簡單的外部接口與外界發(fā)生關(guān)系,
對(duì)象與對(duì)象之間通過消息進(jìn)行通信。程序流程由用戶在使用中決定。
什么是作用域:簡單地說,就是作用的范圍,指它在函數(shù)在哪些范圍內(nèi)可以用,而在其他部分不可以,要用就得重新定義。
什么是作用域鏈: 在一個(gè)函數(shù)中嵌套多個(gè)函數(shù) 并且各自定義相同的變量名 當(dāng)函數(shù)訪問變量時(shí) 就形成了作用域鏈
作用 用來保護(hù)對(duì)執(zhí)行環(huán)境有權(quán)訪問變量和函數(shù)的有序訪問
瀏覽器標(biāo)準(zhǔn)模式和怪異模式之間的區(qū)別是什么?
所謂的標(biāo)準(zhǔn)模式是指,瀏覽器按W3C標(biāo)準(zhǔn)解析執(zhí)行代碼;怪異模式則是使用瀏覽器自己的方式解析執(zhí)行代碼,因?yàn)椴煌瑸g覽器解析執(zhí)行的方式不一樣,
所以我們稱之為怪異模式
主流瀏覽器內(nèi)核
IE trident 火狐gecko ? 谷歌蘋果webkit(wai b k t) ? Opera:Presto
同步和異步的區(qū)別?
同步:阻塞的
-張三叫李四去吃飯,李四一直忙得不停,張三一直等著,直到李四忙完兩個(gè)人一塊去吃飯
=瀏覽器向服務(wù)器請(qǐng)求數(shù)據(jù),服務(wù)器比較忙,瀏覽器一直等著(頁面白屏),直到服務(wù)器返回?cái)?shù)據(jù),瀏覽器才能顯示頁面
異步:非阻塞的
-張三叫李四去吃飯,李四在忙,張三說了一聲然后自己就去吃飯了,李四忙完后自己去吃
=瀏覽器向服務(wù)器請(qǐng)求數(shù)據(jù),服務(wù)器比較忙,瀏覽器可以自如的干原來的事情(顯示頁面),服務(wù)器返回?cái)?shù)據(jù)的時(shí)候通知瀏覽器一聲,
瀏覽器把返回的數(shù)據(jù)再渲染到頁面,局部更新
如何解決跨域問題?
理解跨域的概念:協(xié)議、域名、端口都相同才同域,否則都是跨域
出于安全考慮,服務(wù)器不允許ajax跨域獲取數(shù)據(jù),但是可以跨域獲取文件內(nèi)容,所以基于這一點(diǎn),可以動(dòng)態(tài)創(chuàng)建script標(biāo)簽,
使用標(biāo)簽的src屬性訪問js文件的形式獲取js腳本,并且這個(gè)js腳本中的內(nèi)容是函數(shù)調(diào)用,該函數(shù)調(diào)用的參數(shù)是服務(wù)器返回的數(shù)據(jù),
為了獲取這里的參數(shù)數(shù)據(jù),需要事先在頁面中定義回調(diào)函數(shù),
在回調(diào)函數(shù)中處理服務(wù)器返回的數(shù)據(jù),這就是解決跨域問題的主流解決方案
GET和POST的區(qū)別,何時(shí)使用POST?
GET:一般用于信息獲取,使用URL傳遞參數(shù),對(duì)所發(fā)送信息的數(shù)量也有限制,一般在2000個(gè)字符,有的瀏覽器是8000個(gè)字符
POST:一般用于修改服務(wù)器上的資源,對(duì)所發(fā)送的信息沒有限制
在以下情況中,請(qǐng)使用 POST 請(qǐng)求:
1. 無法使用緩存文件(更新服務(wù)器上的文件或數(shù)據(jù)庫)
2. 向服務(wù)器發(fā)送大量數(shù)據(jù)(POST 沒有數(shù)據(jù)量限制)
3. 發(fā)送包含未知字符的用戶輸入時(shí),POST 比 GET 更穩(wěn)定也更可靠
了解Bom對(duì)象
Bom是瀏覽器對(duì)象模型,他提供了很多對(duì)象,用來訪問瀏覽器的功能,Bom的核心對(duì)象是window,他表示瀏覽器的一個(gè)實(shí)例
原型鏈基本思想:利用原型讓一個(gè)引用類型繼承另外一個(gè)引用類型的屬性和方法。
作用域分為兩種 1.全局變量? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.局部變量
全句變量:在函數(shù)外部定義的變量? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 局部變量:在函數(shù)內(nèi)部的變量
從變量定義的位置開始整個(gè)文件都可以訪問? ? ? ? ? ? ? ? ? ? ? ? ? 只能在當(dāng)前函數(shù)內(nèi)部訪問
事件綁定:在Dom中直接綁定 在Javascript代碼中綁定事件 使用事件監(jiān)聽綁定
Dom操作:dom就是針對(duì)html和xml的一個(gè)編程接口,可以使開發(fā)人員進(jìn)行修改、添加頁面的某一部分。
可以使用javaScript來操作dom實(shí)現(xiàn)增刪改查,動(dòng)態(tài)添加標(biāo)簽屬性等
Event(A wen t)事件對(duì)象:
Event 對(duì)象代表事件的狀態(tài) 比如事件在其中發(fā)生的元素、鍵盤按鍵的狀態(tài)、鼠標(biāo)的位置、鼠標(biāo)按鈕的狀態(tài)。
什么時(shí)候會(huì)產(chǎn)生Event 對(duì)象呢
當(dāng)用戶單擊某個(gè)元素的時(shí)候,我們給這個(gè)元素注冊(cè)+-的事件就會(huì)觸發(fā),該事件的本質(zhì)就是一個(gè)函數(shù),而該函數(shù)的形參接收一個(gè)event對(duì)象.
繼承三種常用方式:
類式繼承 原型式繼承 組合式繼承
AJAX的工作原理
Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個(gè)中間層(AJAX引擎),使用戶操作與服務(wù)器響應(yīng)異步化。
并不是所有的用戶請(qǐng)求都提交給服務(wù)器,像—些數(shù)據(jù)驗(yàn)證和數(shù)據(jù)處理等都交給Ajax引擎自己來做,
只有確定需要從服務(wù)器讀取新數(shù)據(jù)時(shí)再由Ajax引擎代為向服務(wù)器提交請(qǐng)求。
Ajax的四大步驟
1.創(chuàng)建Ajax對(duì)象
2.連接到服務(wù)器
3.發(fā)送請(qǐng)求
4.接收返回值
ajax與傳統(tǒng)請(qǐng)求區(qū)別 請(qǐng)求發(fā)送方式 服務(wù)器響應(yīng)內(nèi)容 頁面的處理流程
ajax的主要技術(shù)? js? dom+css xml/json/xhtml
ajax的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
1、通過異步模式,網(wǎng)頁無刷新,提升了用戶體驗(yàn)。
2、優(yōu)化了瀏覽器和服務(wù)器之間的傳輸,減少不必要的數(shù)據(jù)往返,減少了帶寬占用。
3、Ajax引擎在客戶端運(yùn)行,承擔(dān)了一部分本來由服務(wù)器承擔(dān)的工作,從而減少了大用戶量下的服務(wù)器負(fù)載。
4、基于標(biāo)準(zhǔn)化的并被廣泛支持的技術(shù),不需要下載插件或者小程序。
缺點(diǎn):
1、ajax不支持瀏覽器back按鈕。
2、安全問題 AJAX暴露了與服務(wù)器交互的細(xì)節(jié)。
3、對(duì)搜索引擎的支持比較弱。
4、破壞了程序的異常機(jī)制。
5、不容易調(diào)試。
什么是nodejs
首先需要明白Nodejs不是一個(gè)js應(yīng)用、而是一個(gè)js運(yùn)行平臺(tái)。其是由C++編寫而成。
但是Nodejs是一個(gè)后端的運(yùn)行環(huán)境。因此你可以編寫系統(tǒng)級(jí)或者服務(wù)器端的js讓Nodejs幫你執(zhí)行。
分析js的缺點(diǎn):
1.本身是一種不嚴(yán)謹(jǐn)?shù)哪_本語言
2.代碼中變量聲明隨意,大量的js造成變量污染
3.引用大量的js相互依賴,有先后順序關(guān)系
bootstrap柵格系統(tǒng)原理
柵格系統(tǒng)是bootstrap中的核心 正是因?yàn)闁鸥竦拇嬖?bootstrap才能有著如此強(qiáng)大的響應(yīng)式布局方案
javaScript有三種數(shù)據(jù)存儲(chǔ)方式,分別是:
sessionStorage? ? localStorage? ? cookier
相同點(diǎn):都保存在瀏覽器端,同源的
不同點(diǎn):
①傳遞方式不同
②數(shù)據(jù)大小不同
③數(shù)據(jù)有效期不同
④作用域不同
HTTP:是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議,是一個(gè)客戶端和服務(wù)器端請(qǐng)求和應(yīng)答的標(biāo)準(zhǔn)(TCP),
用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,它可以使瀏覽器更加高效,使網(wǎng)絡(luò)傳輸減少
HTTPS:是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版,即HTTP下加入SSL層,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL
HTTPS和HTTP的區(qū)別主要如下:
1、https協(xié)議需要到ca申請(qǐng)證書,一般免費(fèi)證書較少,因而需要一定費(fèi)用。
2、http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。
3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
4、http的連接很簡單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。
懶加載
懶加載也叫延遲加載:JS圖片延遲加載 延遲加載圖片或符合某些條件時(shí)才加載某些圖片
意義:懶加載的主要目的是作為服務(wù)器前端的優(yōu)化,減少請(qǐng)求數(shù)或延遲請(qǐng)求數(shù)
js字符串截取函數(shù)slice(s lei s)、substring(sa b si zhui ying)、substr(sa b s chui)
javascript對(duì)象的幾種創(chuàng)建方式?
1..工廠模式
2.構(gòu)造函數(shù)模式
3.原型模式
4.混合構(gòu)造函數(shù)和原型模式
5.動(dòng)態(tài)原型模式
6.寄生構(gòu)造函數(shù)模式
7. 穩(wěn)妥構(gòu)造函數(shù)模式
Jsonp原理
動(dòng)態(tài)創(chuàng)建一個(gè)script標(biāo)簽,利用script標(biāo)簽 src屬性訪問沒有限制,實(shí)現(xiàn)跨域。
ajax跨域
js跨域是指通過js在不同的域之間進(jìn)行數(shù)據(jù)傳輸或通信,比如用ajax向一個(gè)不同的域請(qǐng)求數(shù)據(jù),或者通過js獲取
頁面中不同域的框架中(iframe)的數(shù)據(jù)。只要協(xié)議、域名、端口有任何一個(gè)不同,都被當(dāng)作是不同的域
那些操作會(huì)造成內(nèi)存泄漏?
閉包,死循環(huán)
JS中避免命名沖突的三個(gè)方法
命名空間 閉包 匿名函數(shù)
JavaScript的數(shù)據(jù)類型都有什么
基本數(shù)據(jù)類型:
字符串 String? ? 數(shù)字 Number? ? 布爾Boolean
復(fù)合數(shù)據(jù)類型:
數(shù)組 Array? ? 對(duì)象 Object
特殊數(shù)據(jù)類型:
Null 空對(duì)象? ? Undefined 未定義
本地存儲(chǔ)的生命周期是什么
本地存儲(chǔ)沒有生命周期,它將保留知道用戶從瀏覽器清除或者使用Javascript代碼移除
自我介紹
各位面試官好 我是來自1611O班的xx 今年xx 來自xx 去年八月來到積云教育學(xué)習(xí) 在這里學(xué)習(xí)也有幾個(gè)月 也掌握了點(diǎn)小技能
在我學(xué)習(xí)的這幾個(gè)月里? 我自己認(rèn)為前三個(gè)月分為三大層 結(jié)構(gòu)層 Html 表示層 CSS 行為層 js 運(yùn)用Html和css搭建移動(dòng)端頁面或pc段頁面
運(yùn)用js可以給我網(wǎng)頁進(jìn)行動(dòng)態(tài)效果 讓頁面變得更完美 這是前三個(gè)月學(xué)習(xí)的主要內(nèi)容 后三個(gè)月我們主要學(xué)習(xí)了bootstrap框架 ajax angular框架
學(xué)習(xí)bootstrap框架讓我們做網(wǎng)頁變得更加的簡單 Ajax學(xué)習(xí)讓我們知道如和從后臺(tái)拿數(shù)據(jù) 服務(wù)器提交請(qǐng)求 Ajax的最大特點(diǎn)就是
頁面無刷新,用戶的體驗(yàn)非常好 angular中學(xué)習(xí)什么是數(shù)據(jù)雙向綁定 什么是路由 什么是自定義服務(wù) angular的優(yōu)點(diǎn)就是模板功
能強(qiáng)大豐富,并且是聲明式的 還自帶了豐富的Angular指令 是一個(gè)比較完善的前端MVVM框架 這就是我這幾個(gè)月學(xué)習(xí)的技能
以上自我的自我介紹 謝謝
你還有什么問題嗎?
我和你剛才的交談中 你感覺我哪里和你想象中的不足呢
我應(yīng)該怎么樣來彌補(bǔ)我的不足呢
1.每個(gè)HTML文件里開頭都有個(gè)很重要的東西,Doctype,知道這是干什么的嗎?
文檔聲明。
?聲明位于文檔中的最前面的位置,處于??標(biāo)簽之前。此標(biāo)簽可告知瀏覽器文檔使用哪種?HTML?或?XHTML?規(guī)范。(重點(diǎn):告訴瀏覽器按照何種規(guī)范解析頁面)
IE下如不書寫文檔聲明會(huì)使用怪異模式解析網(wǎng)頁導(dǎo)致一系列CSS兼容性問題。
2.你做的頁面在哪些流覽器測(cè)試過?這些瀏覽器的內(nèi)核分別是什么?
Trident內(nèi)核:IE系列
Gecko內(nèi)核:Firefox
Webkit內(nèi)核:Safari
Blink內(nèi)核:是基于Webkit內(nèi)核的子項(xiàng)目,使用的瀏覽器有:
Chrome/opera等除IE、Firefox、Safari之外的幾乎所有瀏覽器
幾乎所有國產(chǎn)雙內(nèi)核瀏覽器(Trident/Blink)如360、獵豹、qq、百度等
3.為什么利用多個(gè)域名來存儲(chǔ)網(wǎng)站資源會(huì)更有效?
CDN緩存更方便
突破瀏覽器并發(fā)限制
節(jié)約cookie帶寬
節(jié)約主域名的連接數(shù),優(yōu)化頁面響應(yīng)速度
防止不必要的安全問題
4.請(qǐng)談一下你對(duì)網(wǎng)頁標(biāo)準(zhǔn)和標(biāo)準(zhǔn)制定機(jī)構(gòu)重要性的理解。
網(wǎng)頁標(biāo)準(zhǔn)和標(biāo)準(zhǔn)制定機(jī)構(gòu)都是為了能讓web發(fā)展的更‘健康’,開發(fā)者遵循統(tǒng)一的標(biāo)準(zhǔn),
降低開發(fā)難度,開發(fā)成本,SEO也會(huì)更好做,也不會(huì)因?yàn)闉E用代碼導(dǎo)致各種BUG、安全問題,最終提高網(wǎng)站易用性
5.簡述一下src與href的區(qū)別。
src用于替換當(dāng)前元素,href用于在當(dāng)前文檔和引用資源之間確立聯(lián)系。
6.知道的網(wǎng)頁制作會(huì)用到的圖片格式有哪些?
png-8,png-24,jpeg,gif,svg。
7.在css/js代碼上線之后開發(fā)人員經(jīng)常會(huì)優(yōu)化性能,從用戶刷新網(wǎng)頁開始,一次js請(qǐng)求一般情況下有哪些地方會(huì)有緩存處理?
答案:dns緩存,cdn緩存,瀏覽器緩存,服務(wù)器緩存。
8.CSS中可以通過哪些屬性定義,使得一個(gè)DOM元素不顯示在瀏覽器可視范圍內(nèi)?
設(shè)置display屬性為none,或者設(shè)置visibility屬性為hidden
設(shè)置寬高為0,設(shè)置透明度為0,設(shè)置z-index位置在-1000em
設(shè)置text-indent:-9999px;
9.行內(nèi)元素和塊級(jí)元素的具體區(qū)別是什么?行內(nèi)元素的padding和margin可設(shè)置嗎?
塊級(jí)元素(block)特性:
總是獨(dú)占一行,表現(xiàn)為另起一行開始,而且其后的元素也必須另起一行顯示;
寬度(width)、高度(height)、內(nèi)邊距(padding)、邊框(border)和外邊距(margin)都可控制;
內(nèi)聯(lián)元素(inline)特性:
和相鄰的內(nèi)聯(lián)元素在同一行;
寬度(width)、高度(height)、內(nèi)邊距的top/bottom(padding-top/padding-bottom)和外邊距的
10.什么是外邊距重疊?重疊的結(jié)果是什么?
外邊距重疊就是margin-collapse。
在CSS當(dāng)中,相鄰的兩個(gè)盒子(可能是兄弟關(guān)系也可能是祖先關(guān)系)的外邊距可以結(jié)合成一個(gè)單獨(dú)的外邊距。這種合并外邊距的方式被稱為折疊,并且因而所結(jié)合成的外邊距稱為折疊外邊距。
折疊結(jié)果遵循下列計(jì)算規(guī)則:
兩個(gè)相鄰的外邊距都是正數(shù)時(shí),折疊結(jié)果是它們兩者之間較大的值。
兩個(gè)相鄰的外邊距都是負(fù)數(shù)時(shí),折疊結(jié)果是兩者絕對(duì)值的較大值。
兩個(gè)外邊距一正一負(fù)時(shí),折疊結(jié)果是兩者的相加的和。
11.px和em的區(qū)別。
px和em都是長度單位,區(qū)別是:
px值固定,容易計(jì)算。
em值不固定,是相對(duì)單位,其相對(duì)應(yīng)父級(jí)元素的字體大小會(huì)調(diào)整
12.簡介盒子模型:
CSS的盒子模型有兩種:IE盒子模型、標(biāo)準(zhǔn)的W3C盒子模型模型
盒模型:內(nèi)容、內(nèi)邊距、外邊距(一般不計(jì)入盒子實(shí)際寬度)、邊框
13.HTML與XHTML——二者有什么區(qū)別?
1. 所有的標(biāo)記都必須要有一個(gè)相應(yīng)的結(jié)束標(biāo)記
2. 所有標(biāo)簽的元素和屬性的名字都必須使用小寫
3. 所有的 XML 標(biāo)記都必須合理嵌套
4. 所有的屬性必須用引號(hào) "" 括起來
5. 把所有 < 和 & 特殊符號(hào)用編碼表示
6. 給所有屬性賦一個(gè)值
7. 不要在注釋內(nèi)容中使用 "--"
8. 圖片必須有說明文字
14.前端頁面有哪三層構(gòu)成,分別是什么?作用是什么?
答:結(jié)構(gòu)層 Html 表示層 CSS 行為層 js。
16.哪些css屬性可以繼承?
可繼承: font-size font-family color, ul li dl dd dt;
不可繼承 :border padding margin width height ;
17.CSS3有哪些新特性?
1. CSS3實(shí)現(xiàn)圓角(border-radius),陰影(box-shadow),
2. 對(duì)文字加特效(text-shadow、),線性漸變(gradient),旋轉(zhuǎn)(transform)
3.transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);// 旋轉(zhuǎn),縮放,定位,傾斜
4. 增加了更多的CSS選擇器? 多背景 rgba
5. 在CSS3中唯一引入的偽元素是 ::selection.
6. 媒體查詢,多欄布局
7. border-image
18.html5有哪些新特性、移除了那些元素?如何處理HTML5新標(biāo)簽的瀏覽器兼容問題?如何區(qū)分 HTML 和 HTML5?
新特性:
1. 拖拽釋放(Drag and drop) API
2. 語義化更好的內(nèi)容標(biāo)簽(header,nav,footer,aside,article,section)
3. 音頻、視頻API(audio,video)
4. 畫布(Canvas) API
5. 地理(Geolocation) API
6. 本地離線存儲(chǔ) localStorage 長期存儲(chǔ)數(shù)據(jù),瀏覽器關(guān)閉后數(shù)據(jù)不丟失;
7. sessionStorage 的數(shù)據(jù)在瀏覽器關(guān)閉后自動(dòng)刪除
8. 表單控件,calendar、date、time、email、url、search
9. 新的技術(shù)webworker, websocket, Geolocation
移除的元素:
1. 純表現(xiàn)的元素:basefont,big,center,font, s,strike,tt,u;
2. 對(duì)可用性產(chǎn)生負(fù)面影響的元素:frame,frameset,noframes;
支持HTML5新標(biāo)簽:
1. IE8/IE7/IE6支持通過 document.createElement 方法產(chǎn)生的標(biāo)簽,可以利用這一特性讓這些瀏覽器支持 HTML5 新標(biāo)簽,瀏覽器支持新標(biāo)簽后,還需要添加標(biāo)簽?zāi)J(rèn)的樣式(當(dāng)然最好的方式是直接使用成熟的框架、使用最多的是html5shim框架):
src="http://html5shim.googlecode.com/svn/trunk/html5.js"
如何區(qū)分:
DOCTYPE聲明新增的結(jié)構(gòu)元素、功能元素
19.你怎么來實(shí)現(xiàn)頁面設(shè)計(jì)圖,你認(rèn)為前端應(yīng)該如何高質(zhì)量完成工作? 一個(gè)滿屏 品 字布局 如何設(shè)計(jì)?
* 首先劃分成頭部、body、腳部;。。。。。
* 實(shí)現(xiàn)效果圖是最基本的工作,精確到2px;
與設(shè)計(jì)師,產(chǎn)品經(jīng)理的溝通和項(xiàng)目的參與
做好的頁面結(jié)構(gòu),頁面重構(gòu)和用戶體驗(yàn)
處理hack,兼容、寫出優(yōu)美的代碼格式
針對(duì)服務(wù)器的優(yōu)化、擁抱 HTML5。
22.split() 、join() 的區(qū)別
前者是切割成數(shù)組的形式,后者是將數(shù)組轉(zhuǎn)換成字符串
23.IE和DOM事件流的區(qū)別
1.執(zhí)行順序不一樣、
2.參數(shù)不一樣
3.事件加不加on
4.this指向問題
24.js延遲加載的方式有哪些?
1. defer和async
2. 動(dòng)態(tài)創(chuàng)建DOM方式(創(chuàng)建script,插入到DOM中,加載完畢后callBack)
3. 按需異步載入js
27.解釋jsonp的原理,以及為什么不是真正的ajax
動(dòng)態(tài)創(chuàng)建script標(biāo)簽,回調(diào)函數(shù)
Ajax是頁面無刷新請(qǐng)求數(shù)據(jù)操作
28.BOM對(duì)象有哪些,列舉window對(duì)象?
1、window對(duì)象 ,是JS的最頂層對(duì)象,其他的BOM對(duì)象都是window對(duì)象的屬性;
2、document對(duì)象,文檔對(duì)象;
3、location對(duì)象,瀏覽器當(dāng)前URL信息;
4、navigator對(duì)象,瀏覽器本身信息;
5、screen對(duì)象,客戶端屏幕信息;
6、history對(duì)象,瀏覽器訪問歷史信息;
29.請(qǐng)盡可能詳盡的解釋ajax的工作原理
Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個(gè)中間層,使用戶操作與服務(wù)器響應(yīng)異步化。這樣把以前的一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,利于客戶端閑置的處理能力來處理,減輕服務(wù)器和帶寬的負(fù)擔(dān),從而達(dá)到節(jié)約ISP的空間及帶寬租用成本的目的。
簡單來說通過XmlHttpRequest對(duì)象來向服務(wù)器發(fā)異步請(qǐng)求,從服務(wù)器獲得數(shù)據(jù),然后用javascript來操作DOM而更新頁面。這其中最關(guān)鍵的一步就是從服務(wù)器獲得請(qǐng)求數(shù)據(jù)。要清楚這個(gè)過程和原理,我們必須對(duì)?XMLHttpRequest有所了解。
30.什么是三元表達(dá)式?“三元”表示什么意思?
三元運(yùn)算符:
三元如名字表示的三元運(yùn)算符需要三個(gè)操作數(shù)。
語法是?條件 ? 結(jié)果1 : 結(jié)果2;. 這里你把條件寫在問號(hào)(?)的前面后面跟著用冒號(hào)(:)分隔的結(jié)果1和結(jié)果2。滿足條件時(shí)結(jié)果1否則結(jié)果2。
36.http常見的狀態(tài)碼有那些?分別代表是什么意思?
200 - 請(qǐng)求成功
301 - 資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它URL
404 - 請(qǐng)求的資源(網(wǎng)頁等)不存在
500 - 內(nèi)部服務(wù)器錯(cuò)誤
38.什么是閉包(closure),為什么要用它?
簡單的理解是函數(shù)的嵌套形成閉包,閉包包括函數(shù)本身已經(jīng)它的外部作用域
使用閉包可以形成獨(dú)立的空間,延長變量的生命周期,報(bào)存中間狀態(tài)值
39.javascript對(duì)象的幾種創(chuàng)建方式?
1. 工廠模式
2. 構(gòu)造函數(shù)模式
3. 原型模式
4. 混合構(gòu)造函數(shù)和原型模式
5. 動(dòng)態(tài)原型模式
6. 寄生構(gòu)造函數(shù)模式
7. 穩(wěn)妥構(gòu)造函數(shù)模式
40.javascript繼承的 6 種方法?
1. 原型鏈繼承
2. 借用構(gòu)造函數(shù)繼承
3. 組合繼承(原型+借用構(gòu)造)
4. 原型式繼承
5. 寄生式繼承
6. 寄生組合式繼承