jjs命令
1.0、参考
1.1、jjs命令简介

jjs命令是Nashorn提供给开发者调用的命令。

Nashorn不是独立的,你只能通过安装JDK获得。

JDK8开始, 用Nashorn替换掉了Rhino

1.2、jjs命令的使用格式
jjs [options] [files] [-- arguments]

JDK提供的工具有2个特点:

  • 命令名字基本上以j开头
  • 不分长参数和短参数,参数大多以-开头,很少以--开头
1.3、jjs -h

查看jjs命令的使用帮助。

1.4、jjs -v

查看jjs的版本,实际上就是JDK的版本。

直接进入了交互模式,这里可以输入JavaScript代码,立即就会看到结果。

我们输入如下的代码:

console.log("Hello Nashorn");

运行结果如下 ⤵︎

这是为啥呢?因为console对象不是ECMAScript的内置对象。 那我们为啥平时能用呢?这是因为Web浏览器Node.js提供了该内置对象。 从这个小错误,我们可以明白JavaScript EngineJavaScript Runtime的区别。

这个问题也好解决,我们自己创造一个console对象不就可以了嘛,编写如下的代码:

console = {
    log: print,
    warn: print,
    error: print
};
console.log("Hello Rhino");

执行这段代码,就可以成功了。

实际上,这是一种非常惯用的手法。比如为了兼容老的浏览器,我们要使用很多的js polyfill,这些js polyfill的实现思想就是这样子的。

1.5、jjs <jsFile>

执行jsFile

jjs ~/xx.js
1.6、--language es5 | es6

指明要使用哪个版本的语法,目前只支持ES5ES6。 默认是ES5

示例:

jjs --language es6
jjs --language es6 ~/xx.js