# YJS语法 - - - ## 概述 YJS源文件包括任意数量的**import声明**和一个**contract定义**。 - - - ## import声明 与JavaScript(ES6)类似,YJS也支持import声明语句,在全局层面,开发者可以使用如下import声明来导入其他文件。 ``` import "filename"; ``` ### 内容 import声明语句将包含在“filename”文件中的所有全局符号(单元)导入到当前文件,且全局范围内有效。 ### 路径 **filename**通常用**/**做目录分隔符来表示文件的路径,例如,从同一目录下导入**x.yjs**文件到当前文件,可以使用**import "x.yjs"**语句;从其他目录下导入**x.yjs**使用**import "lib/x.yjs"**语句。 - - - ## Contract定义 ### 示例 以下是一个合约示例,用于JSON处理,此YJS源文件以合约名称命名。 ``` contract ScoreAdder{ //arg = {"action":"main","arg":"[{\"score\":20},{\"score\":20}]"} export function main(arg){ //JSON is a build-in object. var point = JSON.parse(arg); var s = 0; print(point[0].score); print(point.length); for (var i=0;i Data from contract: ``` 示例的资源文件"/html/hello.js"如下: ```javascript var queryDataFromContract = function(){ //第一个参数为函数名,第二个为参数,第三个参数为回调。 var data = executeCurrentContract("query","abc",function(argg){ $("#resultText")[0].innerHTML = argg.result; }); } ``` 参考示例: ### YJS-Python TODO