事实证明,+0 === -0计算结果为true,尽管+0和-0是不同的实体.那么,你如何区分+0从-0?
有一个黑客:
if (1 / myZero > 0) {
// myZero is +0
} else {
// myZero is -0
}
Run Code Online (Sandbox Code Playgroud)
我可以做得更好吗?
请考虑两个代码片段(第一个打印"Local eval",第二个打印"Global eval"):
(function f() {
var x;
try {
eval("x");
console.log('Local eval');
}
catch (e) {
console.log('Global eval');
}
}())
Run Code Online (Sandbox Code Playgroud)
和
var globalEval = eval;
(function f() {
var x;
try {
globalEval("x");
console.log('Local eval');
}
catch (e) {
console.log('Global eval');
}
}())
Run Code Online (Sandbox Code Playgroud)
事实证明,即使globalEval === eval计算结果为true,globalEval和eval 不同的行为,因为他们有不同的名称.(如果精确写入,则eval只能是本地的eval.)
我怎样才能区分两个人的逃亡?有没有办法提取变量标签来推断行为?
javascript ×3