有些用户在我的网站上偶尔会报告JS错误.错误消息显示"预期标识符,字符串或数字",行号为423725915,这只是一个任意数字,并在发生这种情况时为每个报告更改.这主要发生在IE7/Mozilla 4.0浏览器上.
我扫描了我的代码了很多次并运行了jslint但它没有选择任何东西 - 任何人都知道导致此错误消息的JS问题的一般类型?
使用jquery是否更好地创建这样的DOM元素: -
function create(options)
{
$('<form action="' + options.action + '"></form>');
}
Run Code Online (Sandbox Code Playgroud)
或者像这样:
function create(options)
{
$form = $('<form></form>');
$form.attr('action',options.action);
}
Run Code Online (Sandbox Code Playgroud)
这可能是一个意见问题.我觉得第二种方式更清晰,但我怀疑效率较低......
我打算用JavaScript实现类继承接口.class是构造函数名称的完美单词.
class = function (classname) {}; // create a class with classname
classA = new class("classA"); // create a class named classA
Run Code Online (Sandbox Code Playgroud)
不幸的是,这class是JavaScript中的保留字.
为什么JavaScript保留这个词class(因为它从不使用它)?
当我输入这个看似无辜的代码片段时:
values.name
Run Code Online (Sandbox Code Playgroud)
gedit将名称突出显示为关键字.但是,关于保留关键字的问题的答案链接到的页面未列出名称.我还在SpiderMonkey中进行了几项微不足道的测试,但名字似乎就像一个普通的标识符.
谷歌搜索也没有告诉我太多.但是,我确实在"其他JavaScript关键字"中找到了一个页面列表名称. 我的猜测是name是一个函数或某些DOM元素的成员,并且不会侵入命名空间.
是名真正在JavaScript中的关键词?如果是这样,它会做什么?
我试图声明一个名为的变量enum但出现Uncaught SyntaxError: Unexpected reserved word错误。
我没有使用打字稿,为什么是enum保留关键字?
我正在搜索它并意识到这enum是一个保留的关键字,但protected也是保留的并且不会给我错误。
我也找不到enum在 vanilla js 中的用途或工作方式。
是否有可能在Javascript中,以确定是否某些字符串是保留语言的关键字,例如switch,if,function等?我想要做的是在动态生成的代码中以一种不会破坏浏览器特定扩展的方式转义保留标识符。我想到的唯一想法是eval在 try-catch 块中使用并检查语法错误。不知道如何做到这一点。有任何想法吗?