JavaScript 数据类型与 JSON 格式详解
本文深入解析 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/
JS动态构建复杂嵌套JSON对象的方法
2026-11-05 15:41:52
JS负数取余为什么是负数?详解余数与模运算区别
2026-11-05 13:34:41
JS 解压出现乱码或报错怎么解决?
2026-11-05 12:32:38
JS 中 startsWith、indexOf 与正则判断字符串前缀的对比
2026-11-04 22:19:43
JS解析Excel后怎么将数据转换为JSON格式
2026-11-04 20:58:28
