esprima 获取变量内容
可以使用 Esprima 解析 JavaScript 代码,然后遍历抽象语法树(AST)来获取变量内容。
首先,需要使用 Esprima 将 JavaScript 代码解析为 AST:
const esprima = require('esprima');
const code = 'var x = 42;';
const ast = esprima.parseScript(code);
然后,可以使用 AST 的遍历器来遍历节点。例如,要获取变量 x 的值,可以找到声明语句节点(VariableDeclaration),然后获取其子节点(VariableDeclarator)的标识符(Identifier)和初始化表达式(Literal):
ast.body.forEach(node => {
if (node.type === 'VariableDeclaration') {
node.declarations.forEach(declaration => {
if (declaration.id.name === 'x') {
const value = declaration.init.value;
console.log(value); // 42
}
});
}
});
这里假设只有一个变量声明语句,如果有多个可以在循环中处理。也可以使用 AST 工具库如 estraverse 或 babel-traverse 来更方便地遍历节点。
原文地址: https://www.cveoy.top/t/topic/9WS 著作权归作者所有。请勿转载和采集!