编辑这个页面须要登录或更高权限!

JavaScript 数据类型

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。 引用数据类型:对象(Object)、数组(Array)、函数(Function)。


数据类型用于以编程语言对一种特定类型的数据进行分类。

例如,数字和字符串是不同类型的数据,JavaScript将对其进行不同的处理。

JavaScript变量可以包含许多数据类型:数字,字符串,数组,对象等:

 var length = 4;// Number 数字
 var firstName = "Vishal";  // String 字符串
 var user = {firstName:"Vishal", age:22};  // Object 对象
 var fruits = ["Apple", "Mango", "Banana"];// Array 数组

JavaScript类型是动态的

JavaScript是一种松散类型或动态语言。JavaScript中的变量并不直接与任何特定的值类型相关联,并且可以为所有变量分配(并重新分配)所有类型的值。

var x = 20; // x 是一个数字
x = "VISHAL";   // x 是一个字符串
x = true;   // x 是一个布尔值
测试看看‹/›

JavaScript 数字

JavaScript只有一种数字类型,没有整数和浮点数的单独指定。

因此,数字可以用JavaScript编写,带或不带小数。

var a = 25; // 没有小数
var b = 80.05;  // 右小数
测试看看‹/›

在以上两种情况下,数据类型都是一个数字,并且无论该数字是否带有小数点都相同。

可以在JavaScript中使用科学的指数表示法来缩写非常大或很小的数字,如以下示例所示:

let num1 = 957e8; // 95700000000
let num2 = 957e-8;// 0.00000957
测试看看‹/›

您将在本教程的后面部分进一步了解数字类型。

JavaScript 字符串

字符串是一个或多个字符(字母,数字,符号)的序列。字符串很有用,因为它们代表文本数据。

JavaScript字符串用于存储和处理文本。

与某些其他语言不同,JavaScript在单引号和双引号之间没有区别。

var msg1 = "Hello world";   // 使用双引号
var msg2 = 'Hello world';   // 使用单引号
测试看看‹/›

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

var str1 = 'She said "Hey" and left';  // 双引号内的单引号
var str2 = "She said 'Hey' and left";  // 单引号内的双引号
var str3 = "Let's have a cup of tea";  // 双引号内的单引号
var str4 = 'We\'ll never give up'; // 用反斜杠转义单引号
测试看看‹/›

您将在本教程的后面部分了解有关字符串的更多信息。

JavaScript 布尔值

布尔数据类型可以是两个值之一,即 true false

在条件测试中经常使用布尔值。

(5 > 10)  // 返回false
(5 < 10)  // 返回true
("Apple" === "Apple") // 返回true
测试看看‹/›

您将在本教程的后面部分了解有关布尔值的更多信息。

JavaScript 数组

数组用于将多个值存储在单个变量中。

JavaScript数组用方括号括起来[]。

数组项用逗号分隔。

以下代码声明(创建)一个名为fruits的数组,其中包含三个项目(三种水果名称):

var fruits = ["Apple", "Mango", "Banana"];
测试看看‹/›

数组内部的每个项目或值都称为一个元素。您可以通过使用索引号来引用数组的元素。

JavaScript数组的索引为零:数组的第一个元素的索引为0,第二个元素的索引为1,依此类推。

您将在本教程的后面部分了解有关数组的更多信息。

JavaScript 对象

在JavaScript中,对象可以看作是属性的集合。

JavaScript对象用花括号括起来{}。

对象属性写为名称:值对,以逗号分隔。

var user = {firstName:"Vishal", age:22, color:"blue", location:"unknown"};
测试看看‹/›

上例中的对象(用户)具有4个属性:firstName,age,color和location。

您将在本教程的后面部分了解有关对象的更多信息。

运算符的类型

typeof运算符可以帮助你找到你的变量的类型。

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

typeof ""  // Returns "string"
typeof "Vishal"// Returns "string"
typeof "42"// Returns "string" (Number within quotes is String)
typeof 42  // Returns "number"
typeof true// Returns "boolean"
typeof false   // Returns "boolean"
typeof undefined   // Returns "undefined"
typeof null// Returns "object"
typeof {name:"Vishal", age:22} // Returns "object"
typeof [2, 4, 6, 8]// Returns "object" (not "array", see note below)
typeof function myFunc(){} // Returns "function"
测试看看‹/›

注:typeof运算符为数组返回“对象”,因为在JavaScript中数组是对象。

undefined (未定义)

undefined值指示尚未为变量分配值,或者根本没有声明变量。

var city;// 值未定义
测试看看‹/›

类型也是undefined

typeof city   // "undefined"
测试看看‹/›

通过将值设置为,可以清空任何变量undefined。类型也将是undefined

city = undefined;   // 值未定义,类型未定义
测试看看‹/›

null (空值)

该值null表示故意不存在任何对象值。

在JavaScript中,的数据类型null是一个对象。

通过将值设置为,可以清空任何对象null

var user = {firstName:"Vishal", age:"22", color:"blue"};
user = null;// 现在value为null,但是数据类型仍然是一个对象
测试看看‹/›

您也可以通过将其设置为来清空对象undefined

var user = {firstName:"Vishal", age:"22", color:"blue"};
user = undefined;   // 值和类型都未定义
测试看看‹/›

空(null)和未定义(undefined)之间的区别

nullundefined值相等但类型不同。

typeof null  // "object" (not "null" for legacy reasons)
typeof undefined // "undefined"
测试看看‹/›

当检查null或时undefined,请注意等号(==)和身份(===)运算符之间的差异,因为前者执行类型转换。

null == undefined // true
null === undefined// false

同时处理多种数据类型

虽然您创建的每个程序都将包含多种数据类型。

当您使用跨数据类型使用的运算符(例如+可以添加数字或连接字符串的运算符)时,可能会获得意外的结果。

当添加数字和字符串时,JavaScript会将数字视为字符串。

var x = 5 + "Sky";
测试看看‹/›

在添加字符串和数字时,JavaScript会将数字视为字符串。

var x = "Sky" + 5;
测试看看‹/›

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

var x = 5 + 3 + "Sky";
测试看看‹/›
var x = "Sky" + 5 + 3;
测试看看‹/›

在第一个示例中,JavaScript将5和3视为数字,直到达到“Sky”。

在第二个示例中,由于第一个操作数是一个字符串,因此所有操作数都被视为字符串。

JavaScript菜鸟教程
JavaScript 对象
JavaScript 函数
JS HTML DOM
JS 浏览器BOM
AJAX 菜鸟教程
JavaScript 参考手册