# Data Types

The WXS language currently supports the following data types:

  • number
  • string
  • boolean
  • object
  • function
  • array
  • date
  • regexp (regular expression)

# number

# Syntax

There are two types of numbers: integers and decimals.

var a = 10;
var PI = 3.141592653589793;

# Properties

  • constructor: Returns the string "Number".

# Methods

  • toString
  • toLocaleString
  • valueOf
  • toFixed
  • toExponential
  • toPrecision

For information on using the above methods, refer to the ES5 standard.

# string

# Syntax

There are two ways to write a string:

'hello world';
"hello world";

# Properties

  • constructor: Returns the string "String".
  • length

For explanations of properties other than constructor, refer to the ES5 standard.

# Methods

  • toString
  • valueOf
  • charAt
  • charCodeAt
  • concat
  • indexOf
  • lastIndexOf
  • localeCompare
  • match
  • replace
  • search
  • slice
  • split
  • substring
  • toLowerCase
  • toLocaleLowerCase
  • toUpperCase
  • toLocaleUpperCase
  • trim

For information on using the above methods, refer to the ES5 standard.

# boolean

# Syntax

Boolean values can take one of two values: true or false.

# Properties

  • constructor: Returns the string "Boolean".

# Methods

  • toString
  • valueOf

For information on using the above methods, refer to the ES5 standard.

# object

# Syntax

An object is a type of unordered key-value pair, which can be used in the following ways:

var o = {} // Generates a new empty object.

// Generates a new non-empty object.
o = {
  'string'  : 1,  //The object’s key can be a string.
  const_var : 2,  //The object’s key can also be an identifier that conforms to the variable definition rules.
  func      : {}, //The object’s value can be of any type.
};

//Object property read operation
console.log(1 === o['string']);
console.log(2 === o.const_var);

//Object property write operation
o['string']++;
o['string'] += 10;
o.const_var++;
o.const_var += 10;

//Object property read operation
console.log(12 === o['string']);
console.log(13 === o.const_var);

# Properties

  • constructor: Returns the string "Object".
console.log("Object" === {k:"1",v:"2"}.constructor)

# Methods

  • toString: Returns the string "[object Object]".

# function

# Syntax

function supports the following definition methods:

//Method 1
function a (x) {
  return x;
}

//Method 2
var b = function (x) {
  return x;
}

function also supports the following syntax (anonymous functions, closures, etc.):

var a = function (x) {
  return function () { return x;}
}

var b = a(100);
console.log( 100 === b() );

# arguments

In function, you can use the arguments keyword. This keyword only has the following properties at present:

  • length: The number of arguments passed to the function.
  • [index]: Each argument passed to the function can be traversed by the index subscript.

Sample code:

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);

# Properties

  • constructor: Returns the string "Function".
  • length: Returns the number of formal parameters of the function.

# Methods

  • toString: Returns the string "[function Function]".

Sample code:

var func = function (a,b,c) { }

console.log("Function" === func.constructor);
console.log(3 === func.length);
console.log("[function Function]" === func.toString());

# array

# Syntax

array supports the following definition methods:

var a = [];      // Generates a new empty array.

a = [1,"2",{},function(){}];  // Generates a new non-empty array, with array elements of any type.

# Properties

  • constructor: Returns the string "Array".
  • length

For explanations of properties other than constructor, refer to the ES5 standard.

# Methods

  • toString
  • concat
  • join
  • pop
  • push
  • reverse
  • shift
  • slice
  • sort
  • splice
  • unshift
  • indexOf
  • lastIndexOf
  • every
  • some
  • forEach
  • map
  • filter
  • reduce
  • reduceRight

For information on using the above methods, refer to the ES5 standard.

# date

# Syntax

Generates the getDate function required by the date object and returns a current time object.

getDate()
getDate(milliseconds)
getDate(datestring)
getDate(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]])
  • Parameters
    • milliseconds: The number of milliseconds from 00:00:00 UTC January 1, 1970.
    • datestring: The date string, in the format: "month day, year hours:minutes:seconds".

Sample code:

var date = getDate(); //Returns the current time object.

date = getDate(1500000000000);
// Fri Jul 14 2017 10:40:00 GMT+0800 (China Standard Time)
date = getDate('2017-7-14');
// Fri Jul 14 2017 00:00:00 GMT+0800 (China Standard Time)
date = getDate(2017, 6, 14, 10, 40, 0, 0);
// Fri Jul 14 2017 10:40:00 GMT+0800 (China Standard Time)

# Properties

  • constructor: Returns the string "Date".

# Methods

  • 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

For information on using the above methods, refer to the ES5 standard.

# regexp

# Syntax

Generates the getRegExp function to be used by the regexp object.

getRegExp(pattern[, flags])
  • Parameters:
    • pattern: The content of the regular expression.
    • flags: The modifiers. This field can only include the following characters:
      • g: global
      • i: ignoreCase
      • m: multiline

Sample code:

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);

# Properties

  • constructor: Returns the string "RegExp".
  • source
  • global
  • ignoreCase
  • multiline
  • lastIndex

For explanations of properties other than constructor, refer to the ES5 standard.

# Methods

  • exec
  • test
  • toString

For information on using the above methods, refer to the ES5 standard.

# Data Type Determination

###constructor Property

You can use the constructor property to determine the data type.

Sample code:

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

You can also use typeof to distinguish certain data types.

Sample code:

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 );