文档中心 > 店铺动态卡片-开发指引

sjs 目前支持如下数据类型:


1)string: 字符串;

2)boolean: 布尔值;

3)number: 数值;

4)object: 对象;

5)function: 函数;

6)array: 数组;

7)date: 日期;

8)regexp: 正则表达式。


一、判断数据类型


sjs 提供了 constructor 与 typeof 两种方式判断数据类型。


1. constructor


const number = 10;
console.log(number.constructor); // "Number"
const string = "str";
console.log(string.constructor); // "String"
const boolean = true;
console.log(boolean.constructor); // "Boolean"
const object = {};
console.log(object.constructor); // "Object"
const func = function(){};
console.log(func.constructor); // "Function"
const array = [];
console.log(array.constructor); // "Array"
const date = getDate();
console.log(date.constructor); // "Date"
const regexp = getRegExp();
console.log(regexp.constructor); // "RegExp"


2. typeof


const num = 100;
const bool = false;
const obj = {};
const func = function(){};
const array = [];
const date = getDate();
const regexp = getRegExp();
console.log(typeof num); // 'number'
console.log(typeof bool); // 'boolean'
console.log(typeof obj); // 'object'
console.log(typeof func); // 'function'
console.log(typeof array); // 'object'
console.log(typeof date); // 'object'
console.log(typeof regexp); // 'object'
console.log(typeof undefined); // 'undefined'
console.log(typeof null); // 'object'


二、string


1. 语法


'hello taobao';
"hello taobao";


es6 语法


// template literal
const a = 'hello';
const str = `${a} taobao`;


2. 属性


1)constructor: 返回值 "String"

2)length


注:除 constructor 外属性的具体含义请参考 ES5 标准。


3. 方法


1)toString;

2)valueOf;

3)charAt;

4)charCodeAt;

5)concat;

6)indexOf;

7)lastIndexOf;

8)localeCompare;

9)match;

10)replace;

11)search;

12)slice;

13)split;

14)substring;

15)toLowerCase;

16)toLocaleLowerCase;

17)toUpperCase;

18)toLocaleUpperCase;

19)trim。


注:具体使用请参考 ES5 标准。


三、number


1. 语法


const num = 10;
const PI = 3.141592653589793;


2. 属性


constructor: 返回值"Number"


3. 方法


1)toString;

2)toLocaleString;

3)valueOf;

4)toFixed;

5)toExponential;

6)toPrecision。


注:具体使用请参考 ES5 标准。


四、boolean


布尔值只有两个特定的值:true 和 false。


1.语法


const a = true;


2.属性


constructor: 返回值"Boolean"


3.方法


1)toString;

2)valueOf。


注:具体使用请参考 ES5 标准。


五、object


1. 语法


var o = {}; // 生成一个新的空对象
// 生成一个新的非空对象
o = {
  'str': "str",  // 对象的 key 可以是字符串
  constVar: 2,  // 对象的 key 也可以是符合变量定义规则的标识符
  val: {}, // 对象的 value 可以是任何类型
};
// 对象属性的读操作
console.log(1 === o['string']);
console.log(2 === o.constVar);
// 对象属性的写操作
o['string']++;
o['string'] += 10;
o.constVar++;
o.constVar += 10;
// 对象属性的读操作
console.log(12 === o['string']);
console.log(13 === o.constVar);


es6 语法:


// 支持
let a = 2;
o = { 
  a, // 对象属性
  b() {}, // 对象方法
};
const { a, b, c: d, e = 'default'} = {a: 1, b: 2, c: 3}; // 对象解构赋值 & default
const {a, ...other} = {a: 1, b: 2, c: 3}; // 对象解构赋值
const f = {...others}; // 对象解构


2. 属性


constructor: 返回值"Object"


console.log("Object" === {a:2,b:"5"}.constructor);


3. 方法


toString:返回字符串 "[object Object]"


六、function


1. 语法


// 方法 1:函数声明
function a (x) {
  return x;
}
// 方法 2:函数表达式
var b = function (x) { 
  return x;
};
// 方法 3:箭头函数
const double = x => x * 2;
function f(x = 2){} // 函数参数默认
function g({name: n = 'xiaoming', ...other} = {}) {} // 函数参数解构赋值
function h([a, b] = []) {} // 函数参数解构赋值
// 匿名函数、闭包
var c = function (x) {
  return function () { return x;}
};
var d = c(25);
console.log(25 === d());


function 中可以使用 arguments 关键字。


var a = function(){
    console.log(2 === arguments.length);
    console.log(1 === arguments[0]);
    console.log(2 === arguments[1]);
};
a(1,2);


输出:


true
true
true


2. 属性


1)constructor: 返回值"Function"

2)length:返回函数的形参个数。


3. 方法


toString:返回字符串 "[function Function]"


4. 示例


var f = function (a,b) { }
console.log("Function" === f.constructor);
console.log("[function Function]" === f.toString());
console.log(2 === f.length);


输出:


true
true
true


七、array


1. 语法


var a = [];      // 空数组
a = [5,"5",{},function(){}];  // 非空数组,数组元素可以是任何类型
const [b, , c, d = 5] = [1,2,3]; // 数组解构赋值 & 默认值
const [e, ...other] = [1,2,3]; // 数组解构赋值
const f = [...other]; // 数组解构


2. 属性


1)constructor: 返回值"Array"

2)length


注:除constructor外属性的具体含义请参考 ES5 标准。


3. 方法


1)toString;

2)concat;

3)join;

4)pop;

5)push;

6)reverse;

7)shift;

8)slice;

9)sort;

10)splice;

11)unshift;

12)indexOf;

13)lastIndexOf;

14)every;

15)some;

16)forEach;

17)map;

18)filter;

19)reduce;

20)reduceRight。


注:具体使用请参考 ES5 标准。


八、date


1. 语法


生成 date 对象需要使用 getDate 函数, 返回一个当前时间的对象。


getDate()
getDate(milliseconds)
getDate(datestring)
getDate(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]])


2. 参数


1)milliseconds: 从 1970年1月1日00:00:00 UTC 开始计算的毫秒数;

2)datestring: 日期字符串,其格式为:"month day, year hours:minutes:seconds"。


3. 属性


constructor: 返回值"Date"


4. 方法


1)toString;

2)toDateString;

3)toTimeString;

4)toLocaleString;

5)toLocaleDateString;

6)toLocaleTimeString;

7)valueOf;

8)getTime;

9)getFullYear;

10)getUTCFullYear;

11)getMonth;

12)getUTCMonth;

13)getDate;

14)getUTCDate;

15)getDay;

16)getUTCDay;

17)getHours;

18)getUTCHours;

19)getMinutes;

20)getUTCMinutes;

21)getSeconds;

22)getUTCSeconds;

23)getMilliseconds;

24)getUTCMilliseconds;

25)getTimezoneOffset;

26)setTime;

27)setMilliseconds;

28)setUTCMilliseconds;

29)setSeconds;

30)setUTCSeconds;

31)setMinutes;

32)setUTCMinutes;

33)setHours;

34)setUTCHours;

35)setDate;

36)setUTCDate;

37)setMonth;

38)setUTCMonth;

39)setFullYear;

40)setUTCFullYear;

41)toUTCString;

42)toISOString;

43)toJSON。


注:具体使用请参考 ES5 标准。


5. 示例


let date = getDate(); //返回当前时间对象
date = getDate(1500000000000);
// Fri Jul 14 2017 10:40:00 GMT+0800 (中国标准时间)
date = getDate('2016-6-29');
// Fri June 29 2016 00:00:00 GMT+0800 (中国标准时间)
date = getDate(2017, 6, 14, 10, 40, 0, 0);
// Fri Jul 14 2017 10:40:00 GMT+0800 (中国标准时间)


九、regexp


1. 语法


生成 regexp 对象需要使用 getRegExp 函数。


getRegExp(pattern[, flags])


2. 参数


1)pattern: 正则的内容。

2)flags:修饰符。只能包含以下字符:

g: global;

i: ignoreCase;

m: multiline。


3. 属性


1)constructor:返回字符串 "RegExp"

2)global;

3)ignoreCase;

4)lastIndex;

5)multiline;

6)source。


注:除 constructor 外属性的具体含义请参考 ES5 标准。


4. 方法


1)exec;

2)test;

3)toString。


注:具体使用请参考 ES5 标准。


5. 示例


var reg = getRegExp("name", "img");
console.log("name" === reg.source);
console.log(true === reg.global);
console.log(true === reg.ignoreCase);
console.log(true === reg.multiline);



FAQ

关于此文档暂时还没有FAQ
返回
顶部