理解eval()计算布尔值的用法
understanding usage of eval() to evaluate boolean
我刚才在看timer.js HERE的代码。遇到了以下代码行:
var paramList = ['autostart', 'time'];
for (var arg in paramList) {
if (func[paramList[arg]] != undefined) {
eval(paramList[arg] + " = func[paramList[arg]]");
}
};
在源代码中,它都在一行上,但我让它上面更容易读,我的困难是使用eval
,即下面的代码行:
eval(paramList[arg] + " = func[paramList[arg]]");
现在,如果我在chrome中添加一个断点到上面的行,然后转到控制台并粘贴代码行,我得到以下内容:
true
为什么?让我们再仔细看看这个语句:
eval(paramList[arg] + " = func[paramList[arg]]");
+
在这里做什么?将paramList[arg]
转换为字符串,在这种情况下eval的使用如下:
eval("paramList[arg] = func[paramList[arg]]");
?
或者加号是用于连接的?(我认为这不太可能!)
我已经阅读了MDN eval(),但仍然有疑问。
谁能解释一下那句话的细目?谢谢。
eval
接受字符串。你有什么:
eval(paramList[arg] + " = func[paramList[arg]]");
+
只是字符串连接。
等价于:
var code = paramList[arg] + " = func[paramList[arg]]"
eval(code);
所以我说它应该等于:
global[paramList[arg]] = func[paramList[arg]];
或者,在这个特定的示例中(使用var paramList = ['autostart', 'time'];)
):
if (func['autostart'] != undefined)
autostart = func['autostart'];
if (func['time'] != undefined)
time = func['autostart'];
相关文章:
- 如何从javascript/jquery中的复选框中获取布尔值
- KendoUI网格行过滤器,带有布尔值下拉列表
- php布尔值's小写AND大写和数字布尔值'可以接受
- select中布尔值的Angularjs ng值不起作用
- 由于布尔值的变化,Django视图中的字符串格式不正确
- MeteorJs Alded autoform,如何从布尔值复选框中获得所需值
- 将字符串动态转换为布尔值
- 将布尔值存储在隐藏字段中以进行表单处理
- 类型错误:布尔值不是 Angular 中登录函数的函数
- Yui Get 复选框返回数组而不是布尔值
- 为什么 1.2 == true 返回 false 如果布尔值 (1.2) 实际上是真的
- 为什么第一个将其视为布尔值,其次不将其视为布尔值
- 当值可能不是正确的布尔值时,如何测试 true
- jquery -ajax 不检查控制器的布尔值
- JS生成随机布尔值
- 使用Angular更改JSON中存储的布尔值
- 如何检查类型是否为布尔值
- 在EaselJS中,如果鼠标按下,我如何获得布尔值
- typescript中的嵌套布尔值
- 理解eval()计算布尔值的用法