例如:
var a = 100;
console.log(window.a); //100
if(1){
a = 10;
}
console.log(window.a); //10
脚本代码块script执行前,系统执行的操作
例如
console.log(a); //undefined
console.log(func); //func
var a = 100;
function func(){
return 1;
}
console.log(foo);
if(true) {
function foo(){
}
}
var a = 1;
function foo() {
var o= {a:3}
with(o) {
var a = 2;
}
console.log(o.a);
console.log(a);
}
foo();
console.log(c);
class c{
}
函数在执行前会先做下面的操作 1) 创建一个AO对象(执行期上下文) 2) 找到函数体中定义的变量和函数形参,变量名作为AO的属性名,值为undefined 3) 将实参和形参统一 4) 将定义的函数名挂在AO的属性中,值为函数体。 如果有兴趣,可以看一下这一道面试题
a = 100;
function demo(e){
function e(){}
arguments[0] = 2;
console.log(e);
if(a){
var b = 123;
function c(){}
}
var c;
a = 10;
var a;
console.log(b);
f = 123;
console.log(c);
console.log(a);
}
var a;
demo(1);
console.log(a);
console.log(f);
打印结果是
2
undefined
undefined
10
100
123
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有