1、声明定义一个函数Fn,那么Fn.prototype是一个什么?
2、Object.proto.__proto__指向什么?
3、声明定义一个函数Fn.prototype.contructor指向什么?
4、程序执行p.getAge(),返回什么?
function Person() {
this.age = 20;
}
Person.prototype.age = 30;
Person.prototype.getAge = function () {
return this.age;
};
var p = new Person();
5、执行obj.getName(),返回什么?
var name = 'cat';
var obj = {
name: 'dog',
getName: function () {
this.name = 'mouse';
return (function () {
return this.name;
})();
}
};
6、连续三次调用add(),最后一次调用输出的结果是什么?
var add = (function () {
return function () {
var counter = 0;
return (counter += 1);
};
})();
7、直接调用sayAnimal(),控制台会输出什么?
var animal = "dog";
function sayAnimal() {
animal = "cat";
function animal() {}
console.log(animal.toString());
}
8、ES5环境中运行,程序输出什么?
var func1 = function () {
return true;
};
var func2 = function () {
return false;
};
(function () {
if (func2()) {
func1 = function () {
return false;
};
function func2() {
return ture;
};
}
})();
console.log(func1());
9、在ES5环境中运行,程序会输出什么?
var func1 = function () {
return ture;
};
var func2 = function () {
return false;
};
(function () {
if (func2()) {
func1 = function () {
return false;
};
var func2 = function () {
return true;
};
}
})();
10、程序输出什么?
func1();
func2();
console.log(innerVar1);
console.log(innerVar2);
function func1() {
innerVar1 = 1;
}
function func2() {
innerVar2 = 2;
}
11、关于__proto__和prototype属性,正确的是什么?(多选)
12、关于instanceof运算符,哪些表达式返回true?(多选)
13、javascript运行的执行上下文,分哪几种?(多选)
14、关于js作用域,哪些是正确的?(多选)
15、哪些实现了闭包?(多选)
function func1(){
for(var i=0;i<5;i++) {
setTimeout(function () {
console.log(i);
},3*1000);
}
}
func1();
function func2() {
var counter = 0;
setTimeout(function () {
console.log(counter);
},3*1000);
}
func2();
function func3 () {
var counter = 0;
function getCounter(counter) {
return counter++;
}
return getCounter;
}
func3()(2);
function func4 () {
var counter = 0;
function addCounter() {
return counter++;
}
addCounter();
}
func4();
16、执行代码,正确的是?(多选)
var counter = 100;
function fn() {
var counter = 0;
fn.count = function () {
console.log(++counter);
};
window.print = function () {
console.log(--counter);
};
function plus() {
console.log(++counter);
}
return plus;
}
var foo = fn();
foo();
print();
fn.count();
foo.count();
17、所有函数对象的__proto__都指向Function.prototype,它是一个空函数(Empty function)
是
否
18、除了Object.prototype,所有对象的__proto__都指向其构造器的prototype
是
否
19、所有函数对象的prototype,都是普通对象
是
否
20、JS中作用域分去哪聚作用域、函数作用域和块级作用域
是
否
21、以下代码执行print函数,控制台输出undefined
function print() {
if(true) {
var greeting = "Hello world";
}
console.log(greeting);
}
是
否
22、每当一个函数被调用时就会为该函数创建一个执行上下文,同时与之关联的会有一个变量对象,该上下文中的所有变量和函数全都保存在这个对象中
是
否
23、代码块执行到11行,foo()执行完后,foo()的执行上下文环境内的x变量就会被释放掉
function foo() {
var max = 10;
return function bar(x) {
if (x > max) {
console.log(x);
}
}
}
var fa = foo(),
max = 100;
fa(15);
是
否
24、在闭包使用过程中,在闭包函数退出前,通过删除不使用的局部变量,可以有效防止可能造成的内存泄漏
是
否