相关疑难解决方法(0)

JavaScript中的JavaScript解析器

我需要在JavaScript源代码中添加一些轻量级的语法糖,并使用基于JavaScript的构建系统对其进行处理.有没有用JavaScript编写的开源JavaScript解析器?在V8或类似的高性能JavaScript实现上运行时,它们是否相当快?

感谢您提供的任何指示!

javascript parsing

68
推荐指数
7
解决办法
4万
查看次数

为什么等待和异步有效的变量名?

我尝试使用/不同的关键字和运算符时如何解释,发现以下语法完全合法:

// awaiting something that isn't a Promise is fine, it's just strange to do:
const foo = await /barbaz/
myFn()
Run Code Online (Sandbox Code Playgroud)

错误:

未捕获的ReferenceError:未定义等待

看起来它尝试将解析await变量名 ..?我期待

等待仅在异步功能中有效

或类似的东西

意外的令牌等待

令我恐惧的是,您甚至可以为其分配以下内容:

const await = 'Wait, this actually works?';
console.log(await);
Run Code Online (Sandbox Code Playgroud)

如若不是如此明显的错误原因语法错误,因为它确实有letfinallybreak,等?为什么允许这样做?第一个代码片段到底发生了什么?

javascript specifications language-design async-await es2017

30
推荐指数
1
解决办法
2960
查看次数

令牌/ RegExp在标记Javascript时发生冲突

我正在编写一个简单的javascript tokenizer来检测基本类型:Word,Number,String,RegExp,Operator,Comment和Newline.一切都很顺利,但我无法理解如何检测当前字符是RegExp分隔符还是除法运算符.我没有使用正则表达式,因为它们太慢了.有人知道检测它的机制吗?谢谢.

javascript regex token tokenize

8
推荐指数
1
解决办法
2071
查看次数

在JavaScript中查找文本字符串

我有一个很大的有效JavaScript文件(utf-8),我需要从中自动提取所有文本字符串.

为简单起见,该文件中不包含任何注释块,只包含有效的ES6 JavaScript代码.

一旦我发现的发生'"或者',我应该扫描文本块的结尾,是我卡住了,因为所有可能的变化,比如"'",'"'"\'","\"", '",`\``等

是否有已知和/或可重用的算法来检测有效的ES6 JavaScript文本块的结尾?

UPDATE-1:我的JavaScript文件不仅很大,我还必须以块的形式处理它,因此Regex绝对不可用.我不想让我的问题复杂化,提到联合代码块,我会自己解决这个问题,如果我有一个算法可以处理内存中的单个代码.

更新-2:我最初开始工作,感谢这里给出的许多建议,但是由于正则表达式,我再次陷入困境.

正则表达式的示例打破了迄今为止建议的任何文本检测技术:

/'/
/"/
/\`/
Run Code Online (Sandbox Code Playgroud)

仔细研究了这个问题,通过阅读:JavaScript如何检测正则表达式?我担心在JavaScript中检测正则表达式是一个全新的球类游戏,值得一个单独的问题,否则它会变得太复杂.但是,如果有人能指出我正确的方向,我非常感谢...

更新3:经过大量研究后,我遗憾地发现我无法想出一个适用于我的算法的算法,因为正则表达式的存在使得任务比最初想象的要复杂得多.根据以下内容:解析Javascript时,什么决定了斜杠的含义?确定JavaScript中正则表达式的开头和结尾是最复杂和最复杂的任务之一.如果没有它,我们就无法弄清楚符号',''和` 何时打开文本块或者它们是否在正则表达式中.

javascript regex node.js

7
推荐指数
1
解决办法
395
查看次数