SJS语言目前共有以下几种数据类型:

语法
number 包括两种数值:整数,小数。
let a = 10;const PI = 3.141592653589793;
注:以上方法的具体使用请参考 ES5 标准。
语法
string 有两种写法:
'hello world';"hello world";
注:除 constructor 外属性的具体含义请参考 ES5 标准。
以上方法的具体使用请参考 ES5 标准。
语法
布尔值只有两个特定的值:true 和 false。
属性
方法
以上方法的具体使用请参考 ES5 标准。
语法
object 是一种无序的键值对。使用方法如下所示:
代码示例
//生成一个新的空对象var o = {}//生成一个新的非空对象o = {//object 的 key 可以是字符串'string': 1,//object 的 key 也可以是符合变量定义规则的标识符const_var: 2,//object 的 value 可以是任何类型func: {},};//对象属性的读操作console.log(1 === o['string']);console.log(2 === o.const_var);//对象属性的写操作o['string']++;o['string'] += 10;o.const_var++;o.const_var += 10;//对象属性的读操作console.log(12 === o['string']);console.log(13 === o.const_var);
属性
代码示例
console.log("Object" === {k: "1",v: "2"}.constructor)
方法
语法
function 支持以下的定义方式:
代码示例
//方法 1function a (x) {return x;}//方法 2var b = function (x) {return x;}
function 同时也支持以下的语法(匿名函数,闭包等):
var a = function (x) {return function () { return x;}}var b = a(100);console.log( 100 === b() );
arguments
function 里面可以使用 arguments 关键词。该关键词目前只支持以下的属性:
代码示例
var a = function() {console.log(3 === arguments.length);console.log(100 === arguments[0]);console.log(200 === arguments[1]);console.log(300 === arguments[2]);};a(100, 200, 300);
属性
方法
代码示例
var func = function (a, b, c) { }console.log('Function' === func.constructor);console.log(3 === func.length);console.log('[function Function]' === func.toString());
语法
array 支持以下的定义方式:
//生成一个新的空数组var a = [];//生成一个新的非空数组,数组元素可以是任何类型a = [1, '2', {}, function() {}];
属性
除 constructor 外属性的具体含义请参考 ES5 标准。
方法
以上方法的具体使用请参考 ES5 标准。
语法
生成 date 对象需要使用 getDate 函数, 返回一个当前时间的对象。
getDate()getDate(milliseconds)getDate(datestring)getDate(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]])
参数
代码示例
//返回当前时间对象var date = getDate();date = getDate(1500000000000);// Fri Jul 14 2017 10:40:00 GMT+0800 (中国标准时间)date = getDate('2017-7-14');// Fri Jul 14 2017 00:00:00 GMT+0800 (中国标准时间)date = getDate(2017, 6, 14, 10, 40, 0, 0);// Fri Jul 14 2017 10:40:00 GMT+0800 (中国标准时间)
属性
方法
以上方法的具体使用请参考 ES5 标准。
语法
生成 regexp 对象需要使用 getRegExp 函数。
getRegExp(pattern[, flags])
参数:
代码示例
var a = getRegExp('x', 'img');console.log('x' === a.source);console.log(true === a.global);console.log(true === a.ignoreCase);console.log(true === a.multiline);
属性
除 constructor 外属性的具体含义请参考 ES5 标准。
方法
以上方法的具体使用请参考 ES5 标准。
在 SJS 中可以使用 constructor 与 typeof 两种方式判断数据类型。
constructor 属性
代码示例
在开发者工具中打开
在开发者工具中打开
在 WEB IDE 中打开
var number = 10;console.log('Number' === number.constructor);var string = 'str';console.log('String' === string.constructor);var boolean = true;console.log('Boolean' === boolean.constructor);var object = {};console.log('Object' === object.constructor);var func = function(){};console.log('Function' === func.constructor);var array = [];console.log('Array' === array.constructor);var date = getDate();console.log('Date' === date.constructor);var regexp = getRegExp();console.log('RegExp' === regexp.constructor);
typeof
代码示例
在开发者工具中打开
在开发者工具中打开
在 WEB IDE 中打开
var number = 10;var boolean = true;var object = {};var func = function() {};var array = [];var date = getDate();var regexp = getRegExp();console.log('number' === typeof number);console.log('boolean' === typeof boolean);console.log('object' === typeof object);console.log('function' === typeof func);console.log('object' === typeof array);console.log('object' === typeof date);console.log('object' === typeof regexp);console.log('undefined' === typeof undefined);console.log('object' === typeof null);