說明:簡答題沒有固定答案,如下給出的答案是從別處摘錄或本身總結,有錯之處歡迎指出。javascript
標籤上title和alt屬性的區別是什麼?css
relative、absolute、static、fixed的做用,相對誰定位?html
畫出css盒模型java
border-box和content-box的區別和使用場景?
爲了更能形像看出box-sizing中content-box和border-box二者的區別,咱們來個示例圖,以下所示,
這個box-sizing屬性,咱們都有哪些使用場景呢?react
css清除浮動的方法web
設置好一個類用來clearfix,再把該類名加至父元素上:算法
.clearfix:before, .clearfix:after { content: " "; display: table; } .clearfix:after {clear: both;} .clearfix: {zoom: 1}
clearfix技巧是基於在父元素上使用":before"和":after"兩個僞類。咱們能夠在浮動元素的父容器前面和後面建立隱藏元素,":before"用來防止元素頂部的外邊距塌陷,用display:table來建立一個匿名的table-cell元素,也確保IE6/7下一致":after"用來防止子元素底部的外邊距塌陷,以及用來清除浮動元素。缺點是代碼多一點,但還好,用的人也多,兼容性也好。json
根據以下代碼,判斷p元素中文字的顏色?segmentfault
<style> .blue{color: blue;} .red{color: red;} </style> <p class="blue red">內容</p> //red
代碼題數組
function fun(n, o) { console.log(o); return { fun: function(m) { return fun(m, n) } } } var a = fun(1).fun(2).fun(4).fun(8) //undefined,1,2,4
var User = { count: 1, getCount: function() { return this.count } } var fn = User.getCount console.log(fn()); //undefined
function test() { for(var i=0; i<5; i++) { setTimeout(function() { console.log(i) }, 0) } } test(); //5,5,5,5,5
var o = { fn: function() { console.log(fn) } } console.log(o.fn()); //ReferenceError
function Animal(name) { this.name = name; } Animal.prototype.sayName = function() { console.log(this.name) } function Cat(name) { Animal.call(this, name) } var kat = new Cat('Jim') kat.sayName(); //TypeError: kat.sayName is not a function //除非加上 Cat.prototype = new Animal()
寫一個數組去重的方法
/** 方法一: * 1.構建一個新的數組存放結果 * 2.for循環中每次從原數組中取出一個元素,用這個元素循環與結果數組對比 * 3.若結果數組中沒有該元素,則存到結果數組中 * 缺陷:不能去重數組中得引用類型的值和NaN */ function unique(array){ var result = []; for(var i = 0;i < array.length; i++){ if(result.indexOf(array[i]) == -1) { result.push(array[i]); } } return result; } // [1,2,1,2,'1','2',0,'1','你好','1','你好',NaN,NaN] => [1, 2, "1", "2", 0, "你好",NaN,NaN] // [{id: '1'}, {id: '1'}] => [{id: '1'}, {id: '1'}]
//方法二:ES6 Array.from(new Set(array)) // [1,2,1,2,'1','2',0,'1','你好','1','你好',NaN,NaN] => [1, 2, "1", "2", 0, "你好", NaN]
寫一個方法,將URL中的查詢字符串解析成一個字典對象
var path = 'www.u.com/home?id=2&type=0&dtype=-1'; function parseUrl(url) { var result = []; var tmp = (url.split('?'))[1]; var tmpArr = tmp.split('&'); tmpArr.map(function(v, k) { var value, key; var obj = {}; key = (v.split('='))[0]; value = (v.split('='))[1]; obj[key] = value; result.push(obj) }) return result; } console.log(parseUrl(path)); //[{id: '2'},{type: '0'},{dtype: '-1'}]
//功能:獲取url中的參數的值 function UrlSearch(url) { var name,value; var str = url; //取得整個地址欄 var num = str.indexOf("?"); str = str.substr(num+1); //取得全部參數 stringvar.substr(start [, length ] var arr=str.split("&"); //各個參數放到數組裏 for(var i=0;i < arr.length;i++){ num = arr[i].indexOf("="); if(num>0){ name=arr[i].substring(0,num); value=arr[i].substr(num+1); this[name]=value; } } } // 測試 var path = 'www.u.com/home?id=2&type=0&dtype=-1'; var Request= new UrlSearch(path); //實例化 console.log(Request); //[{dtype: '-1'},{id: '2'},{type: '0'}] var nickname = encodeURIComponent(Request.dtype); console.log(nickname); //-1
//功能:修改url參數值 function changeURLArg(url,arg,arg_val){ var pattern=arg+'=([^&]*)'; var replaceText=arg+'='+arg_val; if(url.match(pattern)){ var tmp='/('+ arg+'=)([^&]*)/gi'; tmp=url.replace(eval(tmp),replaceText); return tmp; }else{ if(url.match('[\?]')){ return url+'&'+replaceText; }else{ return url+'?'+replaceText; } } return url+'\n'+arg+'\n'+arg_val; } var path = 'www.u.com/home?id=2&type=0&dtype=-1'; console.log(changeURLArg(path,'type',4)); //"www.u.com/home?id=2&type=4&dtype=4"
一個頁面從輸入 URL 到頁面加載完的過程當中都發生了什麼事情?
總的來講,根據web瀏覽器地址欄中指定的URL,web瀏覽器從web服務器端獲取資源文件等信息,從而顯示出web頁面。具體而言,有以下幾個步驟:
輸入url到頁面展現參考:http://www.jianshu.com/p/71cf...