后浪云小程序教程:微信小程序 数据类型
数据类型
WXS 语言目前共有以下几种数据类型:
- number : 数值
 - string :字符串
 - boolean:布尔值
 - object:对象
 - function:函数
 - array : 数组
 - date:日期
 - regexp:正则
 
number
语法
number 包括两种数值:整数,小数。
var a = 10;
var PI = 3.141592653589793;
属性
- constructor:返回字符串 "Number"。
 
方法
- toString
 - toLocaleString
 - valueOf
 - toFixed
 - toExponential
 - toPrecision
 
以上方法的具体使用请参考 ES5 标准。
string
语法
string 有两种写法:
'hello world';
"hello world";
属性
- 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 标准。
boolean
语法
布尔值只有两个特定的值:true 和 false。
属性
- constructor:返回字符串 "Boolean"。
 
方法
- toString
 - valueOf
 
以上方法的具体使用请参考 ES5 标准。
object
语法
object 是一种无序的键值对。使用方法如下所示:
var o = {} //生成一个新的空对象
//生成一个新的非空对象
o = {
  'string'  : 1,  //object 的 key 可以是字符串
  const_var : 2,  //object 的 key 也可以是符合变量定义规则的标识符
  func      : {}, //object 的 value 可以是任何类型
};
//对象属性的读操作
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);
属性
- constructor:返回字符串 "Object"。
 
console.log("Object" === {k:"1",v:"2"}.constructor)
方法
- toString:返回字符串 "[object Object]"。
 
function
语法
function 支持以下的定义方式:
//方法 1
function a (x) {
  return x;
}
//方法 2
var 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 关键词。该关键词目前只支持以下的属性:
- length: 传递给函数的参数个数。
 - [index]: 通过 index 下标可以遍历传递给函数的每个参数。
 
示例代码:
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);
属性
- constructor:返回字符串 "Function"。
 - length:返回函数的形参个数。
 
方法
- toString:返回字符串 "[function Function]"。
 
示例代码:
var func = function (a,b,c) { }
console.log("Function" === func.constructor);
console.log(3 === func.length);
console.log("[function Function]" === func.toString());
array
语法
array 支持以下的定义方式:
var a = [];      //生成一个新的空数组
a = [1,"2",{},function(){}];  //生成一个新的非空数组,数组元素可以是任何类型
属性
- 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函数, 返回一个当前时间的对象。
getDate()
getDate(milliseconds)
getDate(datestring)
getDate(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]])
- 参数milliseconds: 从1970年1月1日00:00:00 UTC开始计算的毫秒数datestring: 日期字符串,其格式为:"month day, year hours:minutes:seconds"
 
示例代码:
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 (中国标准时间)
属性
- constructor:返回字符串 “Date”。
 
方法
- parse
 - UTC
 - now
 - 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 标准。
regexp
语法
生成 regexp 对象需要使用 getRegExp函数。
getRegExp(pattern[, flags])
- 参数:pattern: 正则表达式的内容。flags:修饰符。该字段只能包含以下字符:g: globali: ignoreCasem: multiline。
 
示例代码:
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:返回字符串 "RegExp"。
 - source
 - global
 - ignoreCase
 - multiline
 - lastIndex
 
除constructor外属性的具体含义请参考 ES5 标准。
方法
- exec
 - test
 - toString
 
以上方法的具体使用请参考 ES5 标准。
数据类型判断
constructor 属性
数据类型的判断可以使用 constructor 属性。
示例代码:
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
使用 typeof 也可以区分部分数据类型。
示例代码:
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 );版权声明:
作者:后浪云
链接:https://www.idc.net/help/185331/
文章版权归作者所有,未经允许请勿转载。
THE END

