全部产品

数据类型

更新时间:2019-09-09 15:12:11

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

  • string: 字符串
  • boolean: 布尔值
  • number: 数值
  • object: 对象
  • function: 函数
  • array: 数组
  • date: 日期
  • regexp: 正则表达式

判断数据类型

SJS 提供了 constructortypeof 两种方式判断数据类型。

constructor

  1. const number = 10;
  2. console.log(number.constructor); // "Number"
  3. const string = "str";
  4. console.log(string.constructor); // "String"
  5. const boolean = true;
  6. console.log(boolean.constructor); // "Boolean"
  7. const object = {};
  8. console.log(object.constructor); // "Object"
  9. const func = function(){};
  10. console.log(func.constructor); // "Function"
  11. const array = [];
  12. console.log(array.constructor); // "Array"
  13. const date = getDate();
  14. console.log(date.constructor); // "Date"
  15. const regexp = getRegExp();
  16. console.log(regexp.constructor); // "RegExp"

typeof

  1. const num = 100;
  2. const bool = false;
  3. const obj = {};
  4. const func = function(){};
  5. const array = [];
  6. const date = getDate();
  7. const regexp = getRegExp();
  8. console.log(typeof num); // 'number'
  9. console.log(typeof bool); // 'boolean'
  10. console.log(typeof obj); // 'object'
  11. console.log(typeof func); // 'function'
  12. console.log(typeof array); // 'object'
  13. console.log(typeof date); // 'object'
  14. console.log(typeof regexp); // 'object'
  15. console.log(typeof undefined); // 'undefined'
  16. console.log(typeof null); // 'object'

string

语法

  1. 'hello alipay';
  2. "hello taobao";

ES6 语法

  1. // 字符串模板
  2. const a = 'hello';
  3. const str = `${a} alipay`;

属性

  • constructor: 返回值 "String"
  • length
说明:除 constructor 外的属性的具体含义参考 ES5 标准。

方法

  • toString
  • valueOf
  • charAt
  • charCodeAt
  • concat
  • indexOf
  • lastIndexOf
  • localeCompare
  • match
  • replace
  • search
  • slice
  • split
  • substring
  • toLowerCase
  • toLocaleLowerCase
  • toUpperCase
  • toLocaleUpperCase
  • trim
说明:具体使用参考 ES5 标准。

number

语法

  1. const num = 10;
  2. const PI = 3.141592653589793;

属性

constructor: 返回值 "Number"

方法

  • toString
  • toLocaleString
  • valueOf
  • toFixed
  • toExponential
  • toPrecision
说明:具体使用参考 ES5 标准。

boolean

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

语法

  1. const a = true;

属性

  • constructor: 返回值 "Boolean"

方法

  • toString
  • valueOf
说明:具体使用参考 ES5 标准。

object

语法

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

ES6 语法:

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

属性

constructor: 返回值 "Object"

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

方法

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

function

语法

  1. // 方法 1:函数声明
  2. function a (x) {
  3. return x;
  4. }
  5. // 方法 2:函数表达式
  6. var b = function (x) {
  7. return x;
  8. };
  9. // 方法 3:箭头函数
  10. const double = x => x * 2;
  11. function f(x = 2){} // 函数参数默认
  12. function g({name: n = 'xiaoming', ...other} = {}) {} // 函数参数解构赋值
  13. function h([a, b] = []) {} // 函数参数解构赋值
  14. // 匿名函数、闭包
  15. var c = function (x) {
  16. return function () { return x;}
  17. };
  18. var d = c(25);
  19. console.log(25 === d());

function 中可以使用 arguments 关键字。

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

输出:

  1. true
  2. true
  3. true

属性

  • constructor: 返回值 "Function"
  • length:返回函数的形参个数

方法

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

示例

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

输出:

  1. true
  2. true
  3. true

array

语法

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

属性

  • constructor: 返回值 "Array"
  • length
说明:除 constructor 外的属性的具体含义参考 ES5 标准。

方法

  • toString
  • concat
  • join
  • pop
  • push
  • reverse
  • shift
  • slice
  • sort
  • splice
  • unshift
  • indexOf
  • lastIndexOf
  • every
  • some
  • forEach
  • map
  • filter
  • reduce
  • reduceRight
说明:具体使用参考 ES5 标准。

date

语法

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

  1. getDate()
  2. getDate(milliseconds)
  3. getDate(datestring)
  4. getDate(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]])

参数

  • milliseconds: 从 1970年1月1日00:00:00 UTC 开始计算的毫秒数
  • datestring: 日期字符串,其格式为:”month day, year hours:minutes:seconds”

属性

constructor: 返回值 "Date"

方法

  • toString
  • toDateString
  • toTimeString
  • toLocaleString
  • toLocaleDateString
  • toLocaleTimeString
  • valueOf
  • getTime
  • getFullYear
  • getUTCFullYear
  • getMonth
  • getUTCMonth
  • getDate
  • getUTCDate
  • getDay
  • getUTCDay
  • getHours
  • getUTCHours
  • getMinutes
  • getUTCMinutes
  • getSeconds
  • getUTCSeconds
  • getMilliseconds
  • getUTCMilliseconds
  • getTimezoneOffset
  • setTime
  • setMilliseconds
  • setUTCMilliseconds
  • setSeconds
  • setUTCSeconds
  • setMinutes
  • setUTCMinutes
  • setHours
  • setUTCHours
  • setDate
  • setUTCDate
  • setMonth
  • setUTCMonth
  • setFullYear
  • setUTCFullYear
  • toUTCString
  • toISOString
  • toJSON
说明:具体使用参考 ES5 标准。

示例

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

regexp

语法

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

  1. getRegExp(pattern[, flags])

参数

  • pattern: 正则的内容。
  • flags:修饰符。只能包含以下字符:
    • g: global
    • i: ignoreCase
    • m: multiline

属性

  • constructor:返回字符串 "RegExp"
  • global
  • ignoreCase
  • lastIndex
  • multiline
  • source
说明:除 constructor 外的属性的具体含义参考 ES5 标准。

方法

  • exec
  • test
  • toString
说明:具体使用参考 ES5 标准。

示例

  1. var reg = getRegExp("name", "img");
  2. console.log("name" === reg.source);
  3. console.log(true === reg.global);
  4. console.log(true === reg.ignoreCase);
  5. console.log(true === reg.multiline);