JSON 面试题精选

JSON (即 JavaScript Object Notation) 是一种轻量级的数据格式,用于在 Web 应用的前端和后端之间交换数据。要精通 JSON 并在面试中脱颖而出,复习这些重要概念是非常关键的。

在这里,我们将涵盖从基础到高级的所有重要问题。

1. 什么是 JSON?

JSON 是 JavaScript Object Notation(JavaScript 对象表示法)的缩写。它具有以下特点:

  • 一种基于文本的数据格式,用于表示结构化的数据。
  • 轻量级,且易于读写。
  • 独立于语言,但深受 JavaScript 语法的法影响。

2. JSON 支持哪些基本数据类型?

JSON 支持:

  • String (字符串): "Amit"
  • Number (数字): 25 (包括整数和浮点数)
  • Boolean (布尔值): true, false
  • Array (数组): ["item1", "item2"]
  • Object (对象): {"key": "value"}
  • Null (空值): null

3. 请解释 JSON 的结构和格式。

JSON 格式遵循 JavaScript 对象 的结构。它包含以字符串形式存在的键值对,可以在服务器和 Web 应用之间相互传输。存储在 JSON 中的值可以像检索 JavaScript 对象 的值那样被检索出来。

{
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
}

4. 谁创造了 JSON?

Douglas Crockford 是第一位介绍并创建 JSON 格式的人,这最早是在 2000 年。

5. JSON 文件的扩展名是什么?

JSON 文件可以使用 .json 扩展名来创建和存储。你可以通过字符串形式的键值对以 JSON 格式添加数据。

6. JSON 数据是如何从后端传输到前端的?

数据通过 JSON.Stringify 转换为 JSON 字符串的形式,并通过 HTTP 从后端发送到前端。

"{\"name\": \"Mohit\", \"age\": 30}"

前端使用 JSON.Parse 解析 JSON 字符串,将其作为 JavaScript 对象使用。

const obj = {"name": "Mohit", "age" : 30}
let personName = obj.name;
let personAge = obj.age;

7. JSON 有哪些特性?

JSON 具有如下不同的特性:

  • 它是一种轻量级格式,有助于优化 Web 应用的性能。
  • 它独立于不同的编程语言。
  • 它获得了各种编程语言的广泛支持。
  • JSON 格式非常易于理解。
  • 它可以表示复杂的数据结构。

8. JSON 与 JavaScript 对象有何不同?

特性

JSON

JavaScript 对象 —

— 语法

基于文本,规则严格(双引号,无尾随逗号)。

可以包含函数、undefined、Symbol 等。 用途

数据交换格式。

用于在代码中操作数据。 解析

需要通过 JSON.parse 进行解析。

在 JavaScript 中直接可用。

9. 如何将 JSON 转换为 JavaScript 对象?

我们可以使用 JSON.parse()

JavaScript


CODEBLOCK_d7c6d7bc

输出 (Output)

Mohit

10. 如何将 JavaScript 对象转换为 JSON?

使用 JSON.stringify() 将 JavaScript 对象转换为 JSON。

JavaScript


CODEBLOCK_8a8808cf

输出 (Output)

{"name":"Mohit","age":30}

11. JSON.stringify 参数的作用是什么?

JSON.stringify(value, replacer, space):

  • value: 要序列化的对象。
  • replacer: 用于过滤键的函数或数组。
  • space: 添加缩进以提高可读性。

JavaScript


CODEBLOCK_4ce2f358

输出 (Output)

{
  "name": "Mohit",
  "age": 30,
  "city": "Delhi"
}

12. JSON 可以包含函数吗?

不可以。JSON 不支持函数或 undefined 值。

JavaScript


CODEBLOCK_9c169b9d

输出 (Output)

{"name":"Mohit"}

13. 如何使用 JSON.stringify() 处理循环引用?

循环引用会导致错误。我们可以使用自定义的 replacer 函数:

JavaScript


CODEBLOCK_45d18012

输出 (Output)

{}

14. 如何使用 JSON 克隆一个对象?

我们可以利用 JSON.parse() 和 JSON.stringify() 的组合来创建对象的深拷贝。首先将对象转换为 JSON 字符串,然后再将其解析回新的对象。

JavaScript


CODEBLOCK_74c81eca

输出 (Output)

{ name: ‘Mohit‘, age: 30 }

注意:这种方法要求对象中的值都是可序列化的(例如,不能包含函数或 undefined)。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/47378.html
点赞
0.00 平均评分 (0% 分数) - 0