sjs 目前支持如下数据类型:
1)string: 字符串;
2)boolean: 布尔值;
3)number: 数值;
4)object: 对象;
5)function: 函数;
6)array: 数组;
7)date: 日期;
8)regexp: 正则表达式。
sjs 提供了 constructor 与 typeof 两种方式判断数据类型。
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"
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'
'hello taobao'; "hello taobao";
es6 语法
// template literal const a = 'hello'; const str = `${a} taobao`;
1)constructor
: 返回值 "String"
;
2)length
。
注:除 constructor 外属性的具体含义请参考 ES5 标准。
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 标准。
const num = 10; const PI = 3.141592653589793;
constructor
: 返回值"Number"
。
1)toString;
2)toLocaleString;
3)valueOf;
4)toFixed;
5)toExponential;
6)toPrecision。
注:具体使用请参考 ES5 标准。
布尔值只有两个特定的值:true 和 false。
const a = true;
constructor
: 返回值"Boolean"
。
1)toString;
2)valueOf。
注:具体使用请参考 ES5 标准。
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}; // 对象解构
constructor
: 返回值"Object"
。
console.log("Object" === {a:2,b:"5"}.constructor);
toString:返回字符串 "[object Object]"
。
// 方法 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
1)constructor
: 返回值"Function"
;
2)length
:返回函数的形参个数。
toString:返回字符串 "[function Function]"
。
var f = function (a,b) { } console.log("Function" === f.constructor); console.log("[function Function]" === f.toString()); console.log(2 === f.length);
输出:
true true true
var a = []; // 空数组 a = [5,"5",{},function(){}]; // 非空数组,数组元素可以是任何类型 const [b, , c, d = 5] = [1,2,3]; // 数组解构赋值 & 默认值 const [e, ...other] = [1,2,3]; // 数组解构赋值 const f = [...other]; // 数组解构
1)constructor
: 返回值"Array"
;
2)length
。
注:除constructor外属性的具体含义请参考 ES5 标准。
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 对象需要使用 getDate 函数, 返回一个当前时间的对象。
getDate() getDate(milliseconds) getDate(datestring) getDate(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]])
1)milliseconds
: 从 1970年1月1日00:00:00 UTC 开始计算的毫秒数;
2)datestring
: 日期字符串,其格式为:"month day, year hours:minutes:seconds"。
constructor
: 返回值"Date"
。
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 标准。
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 对象需要使用 getRegExp 函数。
getRegExp(pattern[, flags])
1)pattern: 正则的内容。
2)flags:修饰符。只能包含以下字符:
① g
: global;
② i
: ignoreCase;
③ m
: multiline。
1)constructor:返回字符串 "RegExp"
;
2)global;
3)ignoreCase;
4)lastIndex;
5)multiline;
6)source。
注:除 constructor 外属性的具体含义请参考 ES5 标准。
1)exec;
2)test;
3)toString。
注:具体使用请参考 ES5 标准。
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);