JavaScript数据类型



JavaScript 数据类型

JavaScript 变量可以存储很多数据类型: 数字, 字符串, 对象等:

var length = 16;                               // 数字
var lastName = "Johnson";                      // 字符串
var x = {firstName:"John", lastName:"Doe"};    // 对象

数据类型的概念

在编程中,数据类型是一个重要的概念

为了能够对变量进行操作,了解一些关于类型的知识是很重要的.

没有数据类型,计算机不能安全地解决这个问题:

var x = 16 + "Volvo";

将16和"Volvo"相加是否有意义 ? 它会产生错误,还是会得到一个结果?

JavaScript 将上述例子视为:

var x = "16" + "Volvo";

当添加一个数字和一个字符串,JavaScript将数字作为字符串.

var x = 16 + "Volvo";

让我试试

var x = "Volvo" + 16;

让我试试

JavaScript表达式的值从左到右。不同的序列可以产生不同的结果:

var x = 16 + 4 + "Volvo";

让我试试

var x = "Volvo" + 16 + 4;

让我试试

在第一个例子中,把16和4作为JavaScript的数字,直到它遇到 "Volvo".

在第二个例子中,因为第一个操作数是字符串,所有操作数都被视为字符串.


JavaScript类型是动态的. JavaScript有一个动态类型. 这意味着可以使用相同的变量来保存不同的数据类型:

var x;               // Now x is undefined
var x = 5;           // Now x is a Number
var x = "John";      // Now x is a String

JavaScript 字符串

字符串(或文本字符串)是一系列字符 "John Doe".

字符串是用引号来书写的。您可以使用单引号或双引号:

var carName = "Volvo XC60";   // 使用双引号
var carName = 'Volvo XC60';   // 使用单引号

你可以在字符串内使用引号, 只要它们不匹配字符串周围的引号:

var answer = "It's alright";             // 在双引号里面有单引号
var answer = "He is called 'Johnny'";    // 双引号里面有单引号
var answer = 'He is called "Johnny"';    // 单引号里面有双引号

让我试试

在本教程后面,您将了解更多有关字符串的知识。.


JavaScript 数字

JavaScript的只有一种类型的数字.

数字可以带或者不带小数点:

var x1 = 34.00;     // 带小数点
var x2 = 34;        // 不带小数点

Extra large or extra small numbers can be written with scientific (exponential) notation:

特别大或者特别小的数字可以用科学(指数)计数法

var y = 123e5;      // 12300000
var z = 123e-5;     // 0.00123

让我试试

在本教程后面,您将了解更多有关数字的知识.


JavaScript Booleans

布尔值只能有两个值:true或false.

var x = true;
var y = false;

布尔值,通常用在条件测试中.

您将在本教程中了解更多有关条件测试的信息.


JavaScript 数组

JavaScript 数组用方括号表示.

数组项用逗号分隔.

下面的代码声明(创建)一个被称为cars的数组,包含3个选项 (汽车名称):

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

让我试试

数组索引为零,这意味着第一个项目是[ 0 ],第二个是[ 1 ],等等.

在本教程后面,您将了解更多有关数组的知识。


JavaScript 对象

JavaScript 对象用大括号表示.

对象的属性用名键:值对,以逗号分隔.

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

让我试试

上面例子中的对象(人)有4个属性: firstName, lastName, age, and eyeColor.

在本教程后面,您将了解更多有关对象的知识.


typeof 操作符

你可以使用JavaScript typeof运算符来判断一个JavaScript变量的类型.

typeof运算符返回一个变量或表达式的类型:

typeof ""                  // Returns "string"
typeof "John"              // Returns "string"
typeof "John Doe"          // Returns "string"
typeof "John" + "Doe"      // Returns "string"

让我试试

typeof 0                   // Returns "number"
typeof 314                 // Returns "number"
typeof 3.14                // Returns "number"
typeof (3)                 // Returns "number"
typeof (3 + 4)             // Returns "number"

让我试试


原始数据

原始数据值是一个简单的数据值,没有附加属性和方法.

typeof运算符返回一个原始类型:

  • string
  • number
  • boolean
  • null
  • undefined
typeof "John"              // Returns "string"
typeof 3.14                // Returns "number"
typeof true                // Returns "boolean"
typeof false               // Returns "boolean"

让我试试

复合数据

typeof运算符可以对两个复合类型返回:

  • function
  • object
typeof [1,2,3,4]             // Returns "object" (not "array", see note below)
typeof {name:'John', age:34} // Returns "object"
typeof function myFunc(){}   // Returns "function"

让我试试

typeof运算符返回对象针对数组,因为JavaScript中的数组是对象.


Undefined

在JavaScript中,变量没有值,或者值为undefined. typeof 也是 undefined.

var person;                // Value is undefined, type is undefined

让我试试

任何变量可以被清空,通过将值设置为未定义。类型也将是未定义的.

person = undefined;        // Value is undefined, type is undefined

让我试试


空值

空值与undefined无关.

空字符串变量具有值和类型.

var car = "";              // 它的值是"", typeof "string"

让我试试


Null

在JavaScript里面 null 是"没有任何内容". 它应该是不存在的东西.

不幸的是,在JavaScript中,null数据类型是一个对象.

你可以考虑在JavaScript typeof null对象错误。应该是空的.

通过将它设置为空可以清空对象:

var person = null;         // 值是null, 但是类型还是对象

让我试试

还可以将对象设置为 undefined,来清空一个对象:

var person = undefined;   // 值是 undefined, 类型是undefined

让我试试


Undefined 和 Null之间的区别

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

让我试试