js包是在r中使用javascript的工具,实现对几个流行的javascript库的绑定,用于编译、验证、重新格式化、优化和分析javascript代码。建立在v8包的基础上,可以调用这些库
1.在r中验证javascript代码在语法上是否正确#js_typeof(),如果代码无效将引发syntaxerror,用于验证单个函数或对象callback<-'function test(x, y){var z = x*y ;return z;}'js_typeof(callback) #'function'js_typeof('function(x,y){return x + y}') #'function'conf<-'{foo : function(){},bar : 123}'js_typeof(conf) #'object'#javascript程序验证:由javascript语句集合组成,用js_validate_script()函数jscode<-readlines(system.file("js/uglify.min.js",package="js"),warn=false)js_validate_script(jscode) #truejs_validate_script('function(x, y){return x + y}', error = false) #false不允许在全局范围内定义匿名函数
2.esprima:解析,支持ecmascript2017并返回由estree项目标准化的合理语法树格式esprima_tokenize(text,range=false,loc=false,comment=false) #返回data.frametext:javascript代码的字符向量,range:以0为基准注释每个标签的起始位置+结束位1:300,loc:注释每个标签起始行+起始列+终止行+终止列的位置,numeric类型esprima_parse(text,jsx = false,range = false,loc = false,tolerant = false,tokens = false,comment = false) #返回'js_eval'类型,解析成树形结构
3.compiling coffeescript,编译coffee script into javascript,代码一对一地编译成等效的js,coffeescript函数绑定到coffee script cpmpilercat(coffee_compile("square = (x) -> x * x"))cat(coffee_compile("square = (x) -> x * x",bare=t))demo<-readlines(system.file("example/demo.coffee", package = "js"))cat(demo, sep = "\n")js<-coffee_compile(demo) #输出js脚本cat(js)uglify_optimize(js) #压缩js,将代码重写为更紧凑但等效的程序
4.uglify_reformat重新格式化,很适合修复空格、分号等code <- "function test(x, y){x = x || 1; y = y || 1; return x*y;}"cat(uglify_reformat(code, beautify = true, indent_level = 2))
5.jshint代码分析,自动检测javascript代码中的错误和潜在问题,返回data.framecode <- "var foo = 123"jshint(code)
相关文章:
r语言-r语言和mysql还有hadoop的教学课程哪里找
php如何调用r语言的函数,像调用c语言的函数那样
以上就是r语言中使用javascript的详细讲解的详细内容。