jjs
命令是Nashorn
提供给开发者调用的命令。
Nashorn
不是独立的,你只能通过安装JDK获得。
jjs [options] [files] [-- arguments]
JDK提供的工具有2个特点:
j
开头-
开头,很少以--
开头查看jjs
命令的使用帮助。
查看jjs
的版本,实际上就是JDK
的版本。
直接进入了交互模式,这里可以输入JavaScript代码,立即就会看到结果。
我们输入如下的代码:
console.log("Hello Nashorn");
运行结果如下 ⤵︎
这是为啥呢?因为console
对象不是ECMAScript的内置对象。 那我们为啥平时能用呢?这是因为Web浏览器和Node.js提供了该内置对象。 从这个小错误,我们可以明白JavaScript Engine与JavaScript Runtime的区别。
这个问题也好解决,我们自己创造一个console
对象不就可以了嘛,编写如下的代码:
console = {
log: print,
warn: print,
error: print
};
console.log("Hello Rhino");
执行这段代码,就可以成功了。
实际上,这是一种非常惯用的手法。比如为了兼容老的浏览器,我们要使用很多的js polyfill
,这些js polyfill
的实现思想就是这样子的。
执行jsFile
。
jjs ~/xx.js
指明要使用哪个版本的语法,目前只支持ES5和ES6。 默认是ES5。
示例:
jjs --language es6
jjs --language es6 ~/xx.js