JavaScript 对象和 JSON 的区别
参考原文:https://blog.csdn.net/jiaojiao772992/article/details/77871785/
2.1 对象和 JSON 的区别
JSON 就是 JavaScript object notation ,JS对象表示法,是JS对象的严格子集。
区别就是引号:JSON要求所有的属性名(键)必须加 双引号“”,而JS对象实际上不要求双引号。
这就是一个标准JSON:

实际上不需要加引号也是合法的:

为什么JSON规定要加上双引号呢?
这是因为JSON是一个数据交换格式,它可以负责和PHP通信,它是HTML和PHP等等后台语言的信息交换媒介。PHP工程师可以从数据库中得到数据,组建JSON,前台通过Ajax拿到这个JSON之后,解析JSON,组建页面。
比如下图:

所以是其他语言要求JSON有引号,否则报错,不是JS要求的。JSON天生为通信而生!
但是有一种键必须加引号!就是不符合标识符命名规范的键,必须加引号,否则报错!
标识符命名规范:可以是字母、数字、下划线,但是不能以数字开头
下面是符合标识符命名规范的:

下面是不符合标识符命名规范的,必须加引号:

访问属性的时候,必须也加上引号,用方括号表示法。
特别的,如果我们用变量存储一个key,此时必须用方括号枚举,并且方括号中不能有引号:
比如小题目,alert出什么?

实际读取的是obj["2016"] //就是14,
如果alert(obj["key"]) //888,
如果alert (obj.key) //888 ,点语法只能以字符串形式访问对象中的键,key此时不是变量。
所以方括号语法相比点语法更为灵活。
JavaScript 对象和 JSON 的区别的更多相关文章
- JavaScript对象、JSON对象、JSON字符串的区别
一.首先看下什么是JSON JSON:JavaScript Object Natation,JavaScript对象的表现形式,已经发展成一种轻量级的数据交换格式. JavaScript对象的表现形式 ...
- 使用Javascript/jQuery将javascript对象转换为json格式数据 - 海涛的CSDN博客 - 博客频道 - CSDN.NET
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- JSON对象和JavaScript对象直接量的区别--不同之处
JSON对象和JS对象直接量 在工作当中,我们总是可以听到人说将数据转换为JSON对象,或者说把JSON对象转换为字符串之类的话,下面是关于JSON的具体说明. JSON对象并不是JavaScript ...
- JavaScript对象与JSON字符串的相互转换
JSON(JavaScript Object Notation) 是JavaScript编程语言的一个子集.正因JSON是JavaScript的一个子集,所以它可清晰的运用于此语言中. eval函数 ...
- Razor 将C#对象转换成Javascript对象, json还原被转码的字符 "·· HTML转义符
Razor 将C#对象转换成Javascript对象 在Razor中使用Json字符串,特殊字符被自动转义(如:\"->") @{ var jsonStr = Html.Ra ...
- [JS]Javascript对象与JSON的互转
var obj = JSON.parse(json); //由JSON字符串转换为JSON对象 var json=JSON.stringify(obj); //将JSON对象转化为JSON字符 //此 ...
- net.sf.json和 com.fasterxml.jackson中对象转json的区别
近期做项目的时候,发现使用net.sf.json包中的JSONObject或JSONArray将对象转为json数据结构存在一个坑.当对String类型的属性赋值为null情况下,转为json结构为& ...
- javascript函数,构造函数。js对象和json的区别。js中this指向问题
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块.好处:在出现大量程序相同的时候,可以封装为一个function,这样只用调用一次,就能执行很多语句.(1)语法:函数就是包裹在花括号中的代码 ...
- javaScript对象与JSON.stringfly(obj)
//接收json对象 var objJson = new Object(); var arr = new Array(); var obj1 = new Object(); obj1.age = 15 ...
- js对象和json的区别
他们两个没有什么关联只不过可以相互转换而已,就像json可以转化为java对象一样 注意:json只有字符串形式(就是我们常说的json字符串:key/value值和数组形式的字符串),没有什么jso ...
随机推荐
- storeToRefs()的作用和使用
store 是一个用 reactive 包装的对象,这意味着不需要在 getters 后面写 .value,就像 setup 中的 props 一样,如果你写了,我们也不能解构它: <scrip ...
- bash shell笔记整理——tail命令
作用 Print the last 10 lines of each FILE to standard output. With more than one FILE, precede each wi ...
- JavaScript 常见错误与异常处理
一.为什么要了解常见JS错误 1.调试和故障排除: 了解常见的JavaScript错误可以帮助你更好地调试和故障排除代码.当你遇到错误时,能够快速识别错误类型并找到解决方法,可以节省大量的时间和精力. ...
- 【scikit-learn基础】--『监督学习』之 均值聚类
聚类算法属于无监督学习,其中最常见的是均值聚类,scikit-learn中,有两种常用的均值聚类算法:一种是有名的K-means(也就是K-均值)聚类算法,这个算法几乎是学习聚类必会提到的算法:另一个 ...
- HDU 4705 立方和拆解
HDU 4705 立方和拆解 题意 给一棵树,找出所有的(A,B,C)三元组的数量,满足ABC不能同时被一条路径覆盖 思路 首先可以明确的是,对于每个入度大于等于3的点(也就是有两个或以上儿子的节点) ...
- 15、Flutter 按钮组件
按钮组件的属性 ButtonStylee里面的常用的参数 ElevatedButton ElevatedButton 即"凸起"按钮,它默认带有阴影和灰色背景.按下后,阴影会变大 ...
- 全域Serverless+AI,华为云加速大模型应用开发
日前,华为全联接大会2023在上海召开.华为云CTO张宇昕在大会上发布了基于Serverless技术的大模型应用开发框架,框架以面向AI领域全新升级的FunctionGraph 3.0为核心,将Baa ...
- 论文解读丨CIKM'22 MARINA:An MLP-Attention Model for Multivariate Time-Series Analysis
摘要:华为云数据库创新Lab在论文<MARINA: An MLP-Attention Model for Multivariate Time-Series Analysis>中提出了华为自 ...
- 火山引擎 EMR StarRocks 场景案例分享
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 日前 ,火山引擎数智平台(VeDI)旗下产品 E-MapReduce(简称"EMR")正式上线 ...
- Exception: HOUR_OF_DAY: 0 -> 1
解决方案 将mysql链接中配置的 serverTimezone=Asia/Shanghai 改为 serverTimezone=GMT%2B8 Asia/Shanghai与GMT-8的区别 开发和运 ...