JS 数据类型

创建时间:2019.05.19 修改时间:2019.05.20

JS 数据类型为 广义的数据类型 (包含对象、函数),分为基本数据类型和引用数据类型。

基本数据类型(值类型):

引用数据类型:

声明变量类型

声明新变量时,可以使用关键词 "new" 来声明其类型:

var carname=new String;
var x=      new Number;
var y=      new Boolean;
var cars=   new Array;
var person= new Object;

JavaScript 变量均为对象。当声明一个变量时,就创建了一个新的对象。

注:JS 的变量类型声明是非严格的,变量的数据类型将根据赋值自动调整。

如:

var x;           // x 为 undefined
x = 5;           //  现在 x 为数字 
x = "John";      //  现在 x 为字符串 

字符串 String

双引号或单引号中的字符。

var answer1="He is called 'Johnny'";
var answer2='He is called "Johnny"';
var answer3="He is called \"Johnny\"";

注: 字符串中的引号可以用转义符表示。

数字 Number

var x1=34.00;      // 使用小数点来写 
var x2=34;         // 不使用小数点来写 
var y=123e5;      // 12300000
var z=123e-5;     // 0.00123

布尔 Boolean

布尔(逻辑)只有两个值:true 或 false。

var x=true;
var y=false;

数组 Array

var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";

或者

var cars=new Array("Saab","Volvo","BMW");

或者

var cars=["Saab","Volvo","BMW"];

注: 数组中元素的下标从 [0] 开始。

对象 Object

和数组类似,区别在于:

在 JavaScript 中,数组是一种特殊的对象类型。

var person={firstname:"John", lastname:"Doe", id:5566, method:function() {alert("test")}};

对象属性的两种访问方式:

name=person.lastname;
name=person["lastname"];

对象方法的调用方法:

person.method();

注:如果使用 person.method 或 person["method"] 将返回函数表达式。

Undefined 和 Null

var cars=undefined;  //  变量值为 undefined,类型为 undefined。
cars=null;           //  变量值为 null,类型为 object。

null 和 undefined 的值相等,但类型不等:

typeof undefined             // undefined
typeof null                  // object
null === undefined           // false
null == undefined            // true

undefined 是所有没有赋值变量的默认值。

如:

var x,y;
if(x == null){
    document.write(x);
}
if(y == undefined){
    document.write(y);
}

二者都会输出 undefined。