V8源码分析之d8 shell 简介(第四篇)

本文介绍V8引擎的d8命令行界面,包括d8的起源、主要功能如console.log、read/readline、load及arguments变量的使用,以及如何通过d8与JS脚本交互。

0x00 前言

常听人说烦恼即菩提,我们凡人遇到烦恼只是深感烦恼,不见菩提。快乐是在心里,不假外求,求即往往不得,转为烦恼。 ------ 梁实秋

0x01 什么是 d8

V8源码编译出来的可执行程序名为d8。d8作为V8引擎在命令行中可以使用的交互shell存在。平常V8的shell是在浏览器中可以看到的。Google官方已经不记得d8这个名字的由来,但是做为"delveloper shell"的缩写,用首字母d和8结合,恰到好处。

0x02 d8接口

console.log函数

解决js脚本执行结果从shell中输出显示

$ cat test.js
console.log('Hello world!');

$ out.gn/x64.optdebug/d8 test.js
Hello world!

read/readline函数

在d8命令行中,接入到js中,可以使js读取文件内容。

d8> const license = read('LICENSE');
d8> license
"This license applies to all parts of V8 that are not externally
maintained libraries.  The externally maintained libraries used by V8
are:
… (etc.)"

load函数

在d8命令行中,load一个外部的js文件,并可以随后访问该文件中声明的内容。

$ cat util.js
function greet(name) {
  return 'Hello, ' + name;
}

$ d8
d8> load('util.js');
d8> greet('World!');
"Hello, World!"

arguments变量

与d8的命令一起使用的自定义参数可以在shell中使用。只需要把这些参数放在--后面。

out.gn/x64.optdebug/d8 -- hi

shell中使用参数

d8> arguments[0]
"hi"

0x03 参考文献

https://v8.dev/docs/d8

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值