## 6.3 JavaScript使用说明 ### 6.3.1 机器人答设置内容 + ①以字符串"sys.template.javascript.v2="开头,其后是脚本语言,示例如下: > sys.template.javascript.v2=return "abc"; > sys.template.javascript.v2=var abc="123566"; return abc ; + ②支持JavaScript截取字符串方法: > sys.template.javascript.v2=return "abc.cdes".split(".")[0]; > sys.template.javascript.v2=var abc="123566"; return abc.split(".")[0]; ### 6.3.2 调用“sys.in|out” 的方法 已定义“sys.in|out” 方法,在机器人答内容中,可以直接调用;该方法仅适用于获取in或者out内参数值。 + ①利用该方法,可以直接获取JSON结果中`parameters`的参数(用户输入的参数)(用`sys.in.XX`引用)以及`result` 返回参数(用`sys.out.YY `引用)。示例如下: ![](https://box.kancloud.cn/648d43969878f38119041e59962c2b4c_939x398.png) ~~~ var name =sys.in.name; var age =sys.in.age; ~~~ + ②现已支持包括列表的获取,获取返回结果中result下String数组列表第一个下的name属性值(此方法一般用于调用第三方插件的时候),示例如下: ![](https://box.kancloud.cn/e43b7543444d4ff8a68e01bb1d01dcd3_1093x574.png) 如上如实例,为了在后台获取json中的name字段数据,我们需要在后台通过以下代码调用: > var name = sys.out.response.result[0].data.name 注:sys.out.的返回的数据,并不是整个json,而是response的数据(如图中标识)。所以sys.out后紧跟response,即sys.out.response. sys.out ——response 第一层 ————result 第二层 注:需要注意返回的是否是数组。例如如果是数组,需要加下标,例如例子中为result[0] ——————data 第三层 ————————name 第四层 此时才得到我们需要的数据。 + ③支持if ,else if,else 判断 ~~~javaScript var name = sys.in.name; if (name == "Bob") { return "Bob"; } else if (name == "Tom") { return "Tom"; } else if (name == "Tony") { return "Tony"; } else { return "UNKNOW"; } ~~~ **(注意)方法体结束以return 返回值为最终输出结果。** ~~~ var today = new Date(); return today.toString().toLowerCase().replaceAll('t', 'dd'); var today = new Date(); return today.getFullYear().toString(); var min = Math.max(2, 4); return min.toString(); var temp = 1; while (temp <= 1000) { temp += temp; }; return temp.toString(); ~~~ **以上示例均以“ sys.template.javascript.v2= ”开头**