JavaScript 数据类型与 JSON 格式详解

作者:纸飞机

时间:2026-10-28

浏览:160

本文深入解析 JavaScript 中的 JSON 格式与数据类型。JSON 作为数据交换标准,基于对象和数组两种结构,遵循严格的语法规则。JavaScript 包含 Undefined、Null、Boolean、Number 和 String 五种基本数据类型及 Object 复杂类型。通过 typeof 操作符可检测变量类型,其中 null 返回 object。文章结合代码示例,详细说明各类数据的定义、转换方法及实际应用。

文章目录

JSON 格式基础与结构

JSON 是什么

JSON 全称为 JavaScript Object Notation,即 JavaScript 对象表示法。

JSON 的表现形式是用大括号“{}”包裹的一系列项目,各项目之间以逗号(,)分隔,每个项目由冒号(:)分隔的属性名和属性值组成。这种形式类似于字典结构,也印证了 JavaScript 中对象本质上是键值对集合的观点。无论对象结构多么复杂,均可通过一行 JSON 代码进行创建和赋值。

JSON 结构

JSON 主要包含两种基本结构。

简而言之,JSON 对应于 JavaScript 中的对象和数组。利用这两种结构,可以表示各种复杂的数据形态。

1、对象:在 JavaScript 中,对象由大括号“{}”表示,其数据结构为 {key:value,key:value,...} 的键值对形式。在面向对象语言中,key 代表对象的属性,value 代表对应的属性值。取值方式通常采用“对象.key”来获取属性值,且属性值可以是数字、字符串、数组或对象等类型。

2、数组:在 JavaScript 中,数组由中括号“[]”表示,数据结构为 ["java","javascript","vb",...]。取值方式与其他语言一致,通过索引获取,字段值同样可以是数字、字符串、数组或对象。结合对象和数组这两种结构,即可构建复杂的数据结构。

JSON 语法规则

JSON 的语法是 JavaScript 对象表示法语法的子集。

核心规则包括:数据以名称/值对形式存在;数据之间由逗号分隔;花括号用于保存对象;方括号用于保存数组。JSON 的值可以是以下类型:

数字(整数或浮点数);字符串(必须包含在双引号中);逻辑值(true 或 false);数组(包含在方括号中);对象(包含在花括号中);null。

1)并列数据之间使用逗号(", ")进行分隔。

2)映射关系使用冒号(": ")表示。

3)并列数据的集合(即数组)使用方括号("[]")表示。

4)映射的集合(即对象)使用大括号("{}")表示。

创建没有任何属性的对象示例:

代码如下:

var obj = {};

创建一个对象并设置属性及初始值示例:

代码如下:

var author = {name : "trigkit4",age : 21 , sex : "male"};

创建一个对象并设置属性及方法示例:

代码如下:

var hello ={content:"how are you?" , say :function(){alert(this.content)} };

创建一个包含嵌套对象和对象数组的复杂结构示例:

代码如下:

var company = {name:"Apple",
product:"iPPhone",
chairman:{name:"Tim Cook",age:54},
employees:[{name:"Jony Ive",age:47},{name:"Lili",age:29}],
 };

对象是一套无序的名称与值的集合,一个对象以左大括号开始,以右大括号结束。

JSON 中的值可以是双引号括起来的字符串、数值、布尔值(true 或 false)、数组或对象。

JavaScript 数据类型详解

数据类型:

从结构角度来看,所有数据最终可分解为三种类型:

第一种类型是标量(scalar),即单一的字符串(string)或数字(numbers),例如“北京”这一单独的词。

第二种类型是序列(sequence),即若干相关数据按一定顺序并列在一起,也称为数组(array)或列表(List),例如“北京,上海”。

第三种类型是映射(mapping),即名称与值的对应关系(Name/value),数据拥有名称及对应的值,也称为散列(hash)或字典(dictionary),例如“首都:北京”。在编程语言中,只要具备数组(array)和对象(object),即可存储所有数据。

数组与对象的区别在于,数组中的数据没有“名称”(name),而对象中的数据拥有“名称”(name)。

JavaScript 包含 5 种简单数据类型(也称基本数据类型):Undefined、Null、Boolean、Number 和 String。此外还有 1 种复杂数据类型——Object,Object 本质上是由一组无序的名值对组成的。

对值使用 typeof 操作符可能返回以下字符串之一:

● "undefined"——如果该值未定义;

● "boolean"——如果该值是布尔值;

● "string"——如果该值是字符串;

● "number"——如果该值是数值;

● "object"——如果该值是对象或 null;

● "function"——如果该值是函数;

Undefined 类型:

`Undefined` 类型仅有一个值。当使用 var 声明变量但未对其进行初始化时,该变量的值即为 undefined。

Null 类型是第二个仅有一个值的数据类型,该特殊值为 null。从逻辑角度看,null 表示一个空对象指针,这也是使用 typeof 操作符检测 null 时返回 "object" 的原因,例如:

代码如下:

var car = null;
alert(typeof car); // "object"

Number 类型

该类型用于表示整数和浮点数值。此外还有一种特殊数值 NaN(Not a Number,非数值)。该数值用于表示原本应返回数值的操作未返回数值的情况(从而避免抛出错误)。

String 类型

String 类型用于表示由零或多个 16 位 Unicode 字符组成的字符序列,即字符串。字符串可以使用单引号(')或双引号(")表示。数值、布尔值、对象和字符串值均拥有 toString() 方法,但 null 和 undefined 值没有此方法。

多数情况下,调用 toString() 方法无需传递参数。但在调用数值的 toString() 方法时,可传递一个参数:输出数值的基数。

代码如下:

var num = 10;
alert(num.toString()); //"10"
alert(num.toString(2)); //"1010"
alert(num.toString(8)); //"12"
alert(num.toString(10)); //"10"
alert(num.toString(16)); //"a"

在不确定要转换的值是否为 null 或 undefined 的情况下,还可使用转型函数 String(),该函数能将任何类型的值转换为字符串。String() 函数遵循以下转换规则:

● 如果值拥有 toString() 方法,则调用该方法(无参数)并返回相应结果

● 如果值为 null,则返回"null"

● 如果值为 undefined,则返回"undefined"

Object 类型

对象即一组数据和功能的集合。可通过执行 new 操作符后跟要创建的对象类型名称来创建对象。创建 Object 类型的实例并为其添加属性和(或)方法,即可创建自定义对象。

var o = new Object(); typeof 操作符示例

代码如下:

<script type="text/javascript">
var s = "Nicholas";
var b =true;
var c = 21;
var u;
var n = null;
var o = {};
var obj = new Object;//建议写出 new object() 形式
alert(typeof s);//string
 alert(typeof b);//boolean
 alert(typeof c);//number
 alert(typeof u);//undefined
 alert(typeof n);//object
 alert(typeof o);//object
 alert(typeof obj);//object
</script>

Json 在线解析

Json 在线解析地址:http://json.tongxiehui.net/

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章