我正在尝试使用这种恶意JavaScript行: var undefined = true;
JavaScript中的每个未初始化的变量的值undefined都只是一个保存特殊值的变量'undefined',因此以下内容应该执行alert:
var undefined = true,
x;
if (x) {
alert('ok');
}
Run Code Online (Sandbox Code Playgroud)
但事实并非如此,我的问题是为什么?
在进一步的实验中,我尝试了以下方法:
var undefined = true,
x = undefined;
if (x) {
alert('ok');
}
Run Code Online (Sandbox Code Playgroud)
这一次,alert执行.
所以我的问题是...因为在第一个片段x持有undefined(因为它未初始化),为什么没有alert执行?奇怪的是,当明确说明x是undefined(x = undefined)时,alert执行...
dtb*_*dtb 17
名为变量undefined和调用的值之间存在差异undefined.
var undefined = true,
x;
Run Code Online (Sandbox Code Playgroud)
在此示例中,变量undefined设置为值true,并x设置为值(不是变量!)undefined.
var undefined = true,
x = undefined;
Run Code Online (Sandbox Code Playgroud)
在此示例中,变量undefined也设置为该值true,并x设置为变量中包含的值undefined(即true).
因此,虽然您可以声明一个名为的变量undefined,但您无法更改非初始化变量设置为该值的事实undefined.
| 归档时间: |
|
| 查看次数: |
3921 次 |
| 最近记录: |