它可能会引起某人的兴趣并节省几个小时,这是一个令人讨厌的捆绑问题,eval来自一个文件,函数来自第二个文件。
eval('console.log(0)')
(function(x){console.log(x)})(1)
将导致:未捕获的类型错误:评估(...)不是一个函数
这就是解决办法
eval('console.log(0)');
(function(x){console.log(x)})(1)
缺少分号,我在JS optional中读了几遍该分号。
为什么eval不是此上下文中的函数?
这是Javascript的分号插入会让你绊倒的少数情况之一。
此代码:
eval('console.log(0)')
(function(x){console.log(x)})(1)
等同于此代码:
eval('console.log(0)')(function(x){console.log(x)})(1)
换句话说,Javascript认为表达式ava('console.log(0)')
计算一个函数,您试图用参数(函数(x){console.log(x)})
调用该函数。这显然不是您想要的,所以您需要在行的末尾使用分号。
JS运行时在猜测分号应该放在哪里方面并不完美。
当它看到这一点时:
eval('console.log(0)')
(function(x){console.log(x)})(1)
它错误地假设立即调用的函数表达式的结果是ava
行的一部分(一个要传递给ava
计算到的潜在函数的潜在参数)。
下面是一个这样做的例子:
eval("(function(message){ alert(message); })")
("Hi there!");
我得到这个错误: 我的http语法缺少什么?
问题内容: eval函数是一种动态生成代码的强大而简便的方法,那么有哪些警告? 问题答案: 错误使用 eval会 打开代码以进行注入攻击 调试 可能会更具挑战性(没有行号等) 评估的代码执行速度较慢(没有机会编译/缓存评估的代码) 编辑:正如@Jeff Walden在评论中指出的那样,今天#3的真实性要低于2008年。但是,尽管可能会缓存一些已编译脚本,但这只会限于未经修改就重复的脚本。更有可能的
eval函数与文本变量一起实现有力的文本宏工具。语句 eval(s) 用MATLAB的注释器求表达式的值或执行包含于文本字符串s的语句。 前一节的例子也可以在下面的代码中实现,虽然这有点低效率因为它用到完全注释器,而不只是函数调用。 for d = 1:31 s = ['load August' int2str(d) '.dat']; eval(s) % Process t
问题内容: 我试图编写登录到网站的节点功能,但无法使其正常工作。我试图等待页面使用加载功能 这是我到目前为止的内容: 当我运行该函数时,我收到错误消息。这是怎么回事,我想念什么? 问题答案: 为了与其他硒语言绑定的一致性, 并已被弃用。 如果您使用,则应尝试使用代替来确定元素是否存在,如下所示: 或者,如果您要等到欲望元素出现,则应尝试使用以下方法:
我试图使用rxjs输入自动完成的目的,但我一直得到这些错误TypeError:terms.debounce时间不是一个函数,即使我设置这些导入'rxjs/操作员/DebounceTime'; 我称之为的函数是:
在Angular2中尝试一个代码,它的HTML正在运行,但Angular代码没有执行,它表示我从HTML传递的值不是函数。请帮忙! HTML:app.html - 我正在尝试显示学生的详细信息。我在angular app.component.ts文件中有一个项目列表,我在HTML页面上调用它,工作正常。但是当我将单击事件的值传递给 app.component.ts 时,它会给出错误并在控制台上显示