フロントエンドの面接問題のやり方---ちょっと面白い(二)
6592 ワード
一.JQuery中$.fn.extend関数の実装(コアコードを実装すればよい)
二.要素を非表示にする方法:
1.display:none 2.visibility:hidden 3.opacity:0 4.position:absolute;left:-10000px;
三.JAvascriptにはいくつかのデータ型がありますか?
1.基本データ型:String,Number,Boolean,Undefind,Null 2.複雑なデータ型:Object
四.次の順に何を出力しますか?
答え:NaN,10
五.次の順番に出力するものは何ですか?
答え:undefined、ジュエリー2
六.consoleをエージェントできるようにlogメソッドを定義します.ロゴの方法
七.次のコードは何を出力しますか?
答え:1,4,3,2
八.次のコードは何を出力しますか?
// : deep、target、 =>
jQuery.extend = jQuery.fn.extend = function() {
/**
* options:
* name:
* src:
* copy:
* copyIsArray: copy
* clone:
* target:
* deep: , false
*/
var options, name, src, copy, copyIsArray, clone,
target = arguments[0] || {},
i = 1,
length = arguments.length,
deep = false;
// ,
if ( typeof target === "boolean" ) {
deep = target;
target = arguments[ i ] || {};
i++;
}
// ,
if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
target = {};
}
// (1, 2, deep , )
if ( i === length ) {
target = this;
i--;
}
for ( ; i < length; i++ ) {
if ( (options = arguments[ i ]) != null ) {
for ( name in options ) {
src = target[ name ];
copy = options[ name ];
if ( target === copy ) {
continue;
}
//
if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
if ( copyIsArray ) {
copyIsArray = false;
clone = src && jQuery.isArray(src) ? src : [];
} else {
clone = src && jQuery.isPlainObject(src) ? src : {};
}
target[ name ] = jQuery.extend( deep, clone, copy );
} else if ( copy !== undefined ) {
target[ name ] = copy;
}
}
}
}
return target;
};
二.要素を非表示にする方法:
1.display:none 2.visibility:hidden 3.opacity:0 4.position:absolute;left:-10000px;
三.JAvascriptにはいくつかのデータ型がありますか?
1.基本データ型:String,Number,Boolean,Undefind,Null 2.複雑なデータ型:Object
四.次の順に何を出力しますか?
var a = 10;
function test(){
var b = 2 * a;
var a = 20;
var c = a / 2;
console.log(b);
console.log(c);
}
test();
答え:NaN,10
五.次の順番に出力するものは何ですか?
var name = " 1";
function test2(){
alert(tt);
var tt = " 2";
alert(tt);
}
test2();
答え:undefined、ジュエリー2
六.consoleをエージェントできるようにlogメソッドを定義します.ロゴの方法
var log = console.log.bind(console);
七.次のコードは何を出力しますか?
console.log(1);
setTimeout(function(){console.log(2)},1000);
setTimeout(function(){console.log(3)},0);
console.log(4);
答え:1,4,3,2
八.次のコードは何を出力しますか?
alert(0/0);//NaN
alert(1/0);//infinity( )
for(var i = 0,j = 0; i < 10, j < 6; i++, j++){
value = i + j;
}
alert(value);//10
var arr = [1,'abc',function(){alert(3333);}];
alert(arr[2]());
arr[2]();//3333,undefined,3333