2019前端面试题(二)
程序员文章站
2022-03-04 12:20:39
...
闭包作用域
变量提升var a;不管条件是否成立都要进行变量提升,在全局作用域下声明的变量,也相当于给Window设置了一个对象属性,而且两者间建立了映射机制,window.a = undefined
console.log(a);
var a = 12;
function fn(){
console.log(a);
var a = 13;
}
fn();
console.log(a);
执行结果:undefined undefined 12(变量提升)
console.log(a);
var a = 12;
function fn(){
console.log(a);
a = 13;
}
fn();
console.log(a);
执行结果:undefined 12 13
console.log(a);
a = 12;
function fn(){
console.log(a);
a = 13;
}
fn();
console.log(a);
执行结果:程序报错
下面代码的执行结果是
var foo = 1;
function fn(){
if(!foo){
var foo = 10
}
console.log(foo);
}
fn();
执行结果:10
var n = 0;
function a(){
var n = 10;
function b(){
n++;
console.log(n);
}
b();
return b;
}
var c = a();
c();
console.log(n);
执行结果:11,12,0
var a = 10,b = 11,c = 12;
function test(a){
a = 1;
var b = 2;
c = 3;
}
test(10);
console.log(a);
console.log(b);
console.log(c);
执行结果:10,11,3
if(!('a' in window)){
var a = 1;
}
console.log(a);
执行结果:undefined
- in检测属性是否属于这个对象,私有、公有都可以
- hasOwnProperty检测属性是否属于这个对象的私有属性
上一篇: JAVA SE (8)
下一篇: 2019前端面试题汇总