1. inline,inline-block,block的区别以及各自的使用场景
答:
inline是内敛对象特征,该元素对象都在同一行排列,高、行高及顶和底部不可改变,元素有<span>、<a>、<label>、<input>、<img>等
inline-block:对象呈现是内敛对象,对象内容则是块对象,该标签在ie中不支持
block是块对象特征,元素总在新行开始,高、行高及顶和底部可控制,元素有<div>、<p>、<h1>、<form>、<ul>、<li>
2. 以下代码输出结果是:
(function(x){@b@ x=2;@b@ console.dir(arguments[0]);@b@})(1);
答:console.dir(arguments[0]);//2
3. 以下代码输出结果是:
for(var i=0;i<5;i++){@b@ setTimeout(function(){console.log(i);},i*1000);@b@}
答:
5@b@5@b@5@b@5@b@5
4. 以下代码输出结果是:
function a(x,y){@b@ y=function(){x=2;};@b@ return function(){@b@ var x=3;@b@ y();@b@ console.log(x);@b@ }@b@}@b@a();
答:无结果,console.log(x);不会被调用
5. 编写add方法确保以下调用输出期待的结果
add(3,9);//12
答:
function add(x,y){@b@ return x+y;@b@}
add(3)(9);//12
答:
function add(x){@b@ return function(y){@b@ return x+y;@b@};@b@}
6. 编写duplicate方法确保以下调用输出期待的结果
duplicate([1,2,3,4,5]);//[1,2,3,4,5,4,3,2,1]
答:
function duplicate(intArr){@b@ var $intArr=[];@b@ for(var i=0,j=intArr.length-2;i<intArr.length*2-1;i++){@b@ if(i>=intArr.length){@b@ alert(intArr[j]);@b@ $intArr[i]=intArr[j];@b@ j--;@b@ }@b@ $intArr[i]=intArr[i];@b@ } @b@ return $intArr;@b@}