说明:简答题没有固定答案,如下给出的答案是从别处摘录或本身总结,有错之处欢迎指出。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...