【发布时间】:2012-04-01 09:35:46
【问题描述】:
我有以下代码:
"use strict";
function isDefined(variable)
{
return (typeof (window[variable]) === "undefined") ? false : true;
}
try
{
isDefined(isTrue);
}
catch (ex)
{
var isTrue = false;
}
isTrue = true;
有人可以向我解释为什么当我删除关键字“var”时会抛出异常,但当它出现时却将其视为未定义?
【问题讨论】:
-
您可能需要考虑两件事:
return typeof window[variable] !== 'undefined';就足够了,isDefined 的有效签名是isDefined(string),这意味着isDefined('isTrue')可以得到您似乎期望的行为(@987654325 @、window[true]和window[false]没有意义)。
标签: javascript syntax behavior keyword strict