几个 JavaScript Questions

本文通过几个具体的例子探讨了JavaScript中的一些独特特性,包括变量提升、作用域链、this指向等概念,帮助读者理解JavaScript的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Javascript 本身就有很多独特的语言特性。由此,相关的问题也很有意思。接下来,我列举几个,并简单分析一下。

我是在chrome下测试的。。。

var a = 1,
    b = function a(x) {
        x && a(--x);
    };
alert(a);

Answer: 1.

Analyze: functiona() just anonymous function, and it is equal to function b(), the scope of functiona() is only in function b(). so a just one variable in function alert.


function a(x) {
    return x * 2;
}
var a;
alert(a);

Answer:

                functiona(x) {

                return   x*2;

}

Analyze: Forvariable name hoisting, variable a is declaration before function a(). So a is just one function in function alert.

function b(x, y, a) {
    arguments[2] = 10;
    alert(a);
}
b(1, 2, 3);

Answer: 10

Analyze: it iseasy, local variable a is changed by arguments[2] in function b.

function a() {
    alert(this);
}
a.call(null);

Answer:  object window.

Analyze: it issame as a().

 For other cases: 1. a.call(undefined);  output:  object window.

                                2. a.call(0); output: 0

if (!("a" in window)) {   
 var a = 1;
}
alert(a);
Answer: undefined
Sorry, I am not really understand it....


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值