- 行內(nèi)元素與塊級元素的區(qū)別
行內(nèi)元素設(shè)置width奕污、height無效,margin液走、padding僅左右有效菊值,上下無效。 - 前端的三層結(jié)構(gòu)
結(jié)構(gòu)層html育灸,表示層css,行為層js - CSS的引入方式昵宇,區(qū)別是什么
link和@import
- 從屬關(guān)系:link是HTML提供的標簽磅崭,@import是CSS提供的語法規(guī)則
- 加載順序:link在頁面加載過程中會和內(nèi)容同時加載出來,@import引入會在頁面加載完成后才被加載瓦哎。
- 需要js控制DOM改變演示時只能使用link砸喻,DOM不能控制@import
- link無兼容性問題,@import只在IE5以上才能識別
- link樣式權(quán)重高于@import
- CSS選擇器有哪些
id選擇器( # myid)
類選擇器(.myclassname)
標簽選擇器(div, h1, p)
相鄰選擇器(h1 + p)
子選擇器(ul > li)
后代選擇器(li a)
通配符選擇器( * )
屬性選擇器
偽類選擇器 - display:none和visibility:hidden的區(qū)別
display:none隱藏對應(yīng)元素蒋譬,在文檔布局中不給它分配空間割岛,相當于不存在
visibility:hidden隱藏對應(yīng)元素,但在文檔布局中仍保留原來的空間 - position的absolute與fixed共同點與不同點
共同點:改變行內(nèi)元素的呈現(xiàn)方式犯助,讓元素脫離普通流癣漆,不占據(jù)空間
不同點:absolute是根元素可以設(shè)置的,fixed的根元素固定為瀏覽器窗口 - 顯示
block:像塊類型元素一樣顯示
inline:像行內(nèi)元素一樣顯示
inline-block:像行內(nèi)元素一樣顯示剂买,但內(nèi)容像塊類元素一樣顯示
list-item:像塊類元素一樣顯示惠爽,并添加樣式列表標記 - absolute、fixed瞬哼、relative婚肆、static
absolute:絕對定位,相對static以外的第一個祖先元素
fixed:絕對定位坐慰,相對瀏覽器窗口
relative:相對定位较性,相對普通流中 的位置
static:默認值,沒有定位,處于正常流中 - CSS3中的新特性
圓角border-radius
陰影box-shadow
文字陰影text-shadow
線性漸變gradient
旋轉(zhuǎn)transform - 清除浮動技巧
- 使用空標簽定義css clear:both;缺點添加了無意義的標簽
- overflow:hidden;
- 減少頁面加載時間的方法
壓縮CSS赞咙、JS文件
優(yōu)化圖片
圖片格式選擇
優(yōu)化CSS
標明寬高
減少http請求
減少DOM操作 - undefined和null的區(qū)別
undefined表示無责循,null表示尚未存在
- 變量聲明未賦值為undefined
- 調(diào)用函數(shù),函數(shù)參數(shù)未提供為undefined
- 函數(shù)沒返回值人弓,默認返回undefined
- null系統(tǒng)會回收沼死,可用于釋放內(nèi)存
- 優(yōu)雅降級和漸進增強
優(yōu)雅降級:最開始針對新式瀏覽器進行完整功能構(gòu)建,再對低版本瀏覽器進行兼容崔赌。
漸進增強:針對低版本瀏覽器進行構(gòu)建意蛀,逐步添加新式瀏覽器才支持的功能,當瀏覽器支持時自動呈現(xiàn)并發(fā)揮作用健芭。 - 下面三條語句的區(qū)別
function show(){}
var show=function(){}
var show=new Function()
函數(shù)县钥,函數(shù)表達式,函數(shù)對象 - JS輸出數(shù)據(jù)的方式
使用 window.alert() 彈出警告框
使用 document.write() 方法將內(nèi)容寫到 HTML 文檔中
使用 innerHTML 寫入到 HTML 元素
使用 console.log() 寫入到瀏覽器的控制臺 - 下面的代碼輸出什么
var y = 1;
if (function f(){}) {
y += typeof f;
}
console.log(y);//1undefined
var k = 1;
if (1) {
eval(function f(){});
k += typeof f;
}
console.log(k); //1undefined
var k = 1;
if (1) {
function f(){};
k += typeof f;
}
console.log(k); //1function
- JavaScript 中 undefined 和 not defined 的區(qū)別
未聲明的變量直接使用會拋出異常var name is not defined慈迈,如果沒有異常處理若贮,代碼就會停止運行。
但是使用typeof并不會產(chǎn)生異常痒留,會直接返回 undefined谴麦。
var x;// 聲明 x
console.log(x); //undefined
console.log(typeof y); //undefined
console.log(z); //拋出異常:ReferenceError: z is not defined
- JavaScript怎么清空數(shù)組
var arr=['a','b','c']
//方法1
arr=[]
//方法2
arr.length = 0;
//方法3
arr.splice(0,arr.length)
- 判斷一個object是否是數(shù)組(array)
方法1:使用 Object.prototype.toString精確判斷對象類型
function isArray(obj){
return Object.prototype.toString.call( obj ) === '[object Array]';
}
console.log(Object.prototype.toString.call(123)) //[object Number]
console.log(Object.prototype.toString.call('123')) //[object String]
console.log(Object.prototype.toString.call(undefined)) //[object Undefined]
console.log(Object.prototype.toString.call(true)) //[object Boolean]
console.log(Object.prototype.toString.call({})) //[object Object]
console.log(Object.prototype.toString.call([])) //[object Array]
console.log(Object.prototype.toString.call(function(){})) //[object Function]
方法2:使用原型鏈
function isArray(obj){
return obj.__proto__ === Array.prototype;
}
- JavaScript中如何檢測一個變量是否是String類型
typeof(obj) === "string"
typeof obj === "string"
obj.constructor === String
21.列舉ES6的新特性
- 類的支持,引入class關(guān)鍵字
- 字符串模板``
- 解構(gòu)
- 默認參數(shù)伸头,不定參數(shù)匾效,拓展參數(shù)
- let關(guān)鍵字
- for of
- 不同瀏覽器的兼容性區(qū)別
1.標簽?zāi)J外邊界和內(nèi)填充不同
解決辦法:margin:0;padding:0;
2.塊屬性float+橫向margin在IE6中margin顯示比設(shè)置的大
解決辦法:display:inline;
3.標簽高度設(shè)置較小(<10px)在IE6、7中高度顯示比設(shè)置的大
解決辦法:overflow:hidden;或者設(shè)置line-height<height
4.多個圖片標簽設(shè)置在一起恤磷,某些瀏覽器默認有間距
解決辦法:為圖片使用float
5.火狐不支持hand面哼,ie支持pointer
解決辦法:統(tǒng)一使用cursor:pointer;
6.small字體大小不同
解決辦法:使用指定的字體大小 - JavaScript數(shù)組反轉(zhuǎn)
var arr = [5,1,4,7,2];
console.log(arr.reverse())//[ 2, 7, 4, 1, 5 ]
- JavaScript數(shù)組的排序
var arr = [5,1,4,7,2];
console.log(arr.sort())//[ 1, 2, 4, 5, 7 ]
var arr = [5,1,4,7,2];
console.log(arr.sort().reverse())//[ 7, 5, 4, 2, 1 ]
- JavaScript的基本類型
字符串、數(shù)字扫步、布爾魔策、數(shù)組、對象河胎、Null闯袒、Undefined - let和const的區(qū)別
- 都只在聲明所在的塊級作用域內(nèi)有效
- let聲明的變量可以改變值/類型等,const聲明的變量不可改變值仿粹,const聲明同時必須初始化
- relative搁吓、absolute、fixed 定位原點
- absolute:相對不是static的 第一個父元素
- relative:相對其正常位置
- fixed :相對瀏覽器窗口