JavaScript関数の面接問題(一)
18668 ワード
1.// javascript ,( ) ,
// A.
// B.
// C.typeOf
// D.New
// JavaScript , , : , : , , 。
// 3.typeof: typeof 。
// 4.new:new
// 2.
// for(var i = 0; i < 10; i++) {
// setTimeout((function(e) {
// return function( ) {
// console.log(e);
// }
// })(i), 1000)
// }
// , return e, , , e, , 0,1,2,3......
``
3.
// JavaScript call apply , ?
// A.apply ,
// B.call apply Function.prototype , function call、apply
// C. ,call ,apply
// D.call 。call thisObj 。
// Call() apply() , 。 call(), this , 。( call() , 。 apply() , )
// 4.JavaScript , :
// A.
// B.
// C.
// D.
// JavaScript 6 :
// 、 、 、 、 、 。
// ,
// ,
// , ,
// 5.
// var Product = {
// count: 1,
// getCount: function( ) {
// return this.count++;
// }
// };
// console.log(Product.getCount( ));
// var func = Product.getCount;
// console.log(func( ));
// 1 NaN
// this window,window.count++ undefined++, js undefined Number , NaN
6.// var A = {n:4399};
// var B = function(){this.n = 9999};
// var C = function(){var n = 8888};
// B.prototype = A;
// C.prototype = A;
// var b = new B();
// var c = new C();
// A.n++;
// console.log(b.n);
// console.log(c.n);
// b.n b n , (prototype)
// var b = new B() , this.n=9999( this b) b ,b n , 9999
// console.log(c.n);
//
// var c = new C() ,c n , , (prototype) n , A.n++( A n 4400), 4400
7.
var color = "blue";
function changeColor(){
var anotherColor = "red";
function swapColors(){
var tempColor = anotherColor;
anotherColor = color;
color = tempColor;
// color、anotherColor t empColor
}
// color and anotherColor, tempColor
swapColors();
}
changeColor();
// color, anotherColor tempColor
console.log("Color is now " + color); // Color is now red
3 : 、changeColor() swapColors() 。 color changeColor()。changeColor() anotherColor swapColors() , color。swapColors() tempColor, 。 changeColor() tempColor。 , swapColors() , 。
8.//
function a(){
let b = 10;
if (true) {
let b = 20;
console.log(b); // 20
}
console.log(b); // 10
}
a();
, let b, 。 var , 20。
9.function SuperType(){
this.colors = ["red", "blue", "green"];
}
function SubType(){
}
// SuperType
SubType.prototype = new SuperType();
var instance1 = new SubType();
instance1.colors.push("black");
alert(instance1.colors); //"red,blue,green,black"
var instance2 = new SubType();
alert(instance2.colors); //"red,blue,green,black"
SuperType colors ,SuperType colors 。 SubType SuperType ,SubType.prototype SuperType , colors —— SubType.prototype.colors 。 SubType colors 。
10.var num = 1;
var myObject = {
num: 2,
add: function() {
this.num = 3;
(function() {
console.log(" 1 console:" + this.num);
this.num = 4;
})();
console.log(" 2 console:" + this.num);
},
sub: function() {
console.log(" 3 console:" + this.num);
}
};
myObject.add();
console.log(" 4 console:" + myObject.num);
console.log(" 5 console:" + num);
var sub = myObject.sub;
sub();
// 1 console:1
// 2 console:3
// 3 console:4
// 4 console:3
// 5 console:4
myObject.add() , 1 console , , 1.2 , myObject.add() ,this myObject。 , this window, window , , 1 console 1。
1 console ,this.num = 4, window 。 5 console 4。
var sub = myObject.sub;, sub window, 3 console 4。