GAg*_*new 10 javascript parsing
我试图解析javascript(使用javascript),我遇到了对象的问题.javascript如何确定对象或块之间的区别?
例如
{ x : 1, y : 2}
Run Code Online (Sandbox Code Playgroud)
令牌流:
[{][x][:][1][,][y][:][2][}]
Run Code Online (Sandbox Code Playgroud)
然而,显然是一个对象
{ var x = 1; var y = 2}
Run Code Online (Sandbox Code Playgroud)
令牌流:
[{][var][x][=][1][;][var][y][=][2][}]
Run Code Online (Sandbox Code Playgroud)
是一个完全有效的匿名JavaScript块.我如何有效地将每个令牌流识别为对象或块?
但是,更重要的是,我将如何确定可能是对象的令牌流或如下所示的块之间的区别:
{ a : null }
Run Code Online (Sandbox Code Playgroud)
令牌流:
[{][a][:][null][}]
Run Code Online (Sandbox Code Playgroud)
这可以或者是一个对象,其参数等于零,或者它可能是一个块,其中该块中的第一条语句(null)具有一个标签(a)
你不知道。
语法的上下文影响其身份。你不能断章取义并确定它们是什么。
在语法中,对象字面量是:
'{' (propertyNameAndValueList)? '}'
Run Code Online (Sandbox Code Playgroud)
而块是:
'{' (statementList)? '}'
Run Code Online (Sandbox Code Playgroud)
但文字仅存在于允许表达式的地方,而块则存在于允许语句的地方。这些不是同一件事。
因此,周围环境区分了这两种形式。
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |