json对象和js对象的区别

json对象和js对象的区别0

总是感觉json对象和js对象的字面量表示法相同,最近学习json,真心搞不懂,js对象和json对象有什么区别?!就是感觉json对象的key要用" "括起来,但是js对象的字面量表示法不需要。 

比如: 
js对象的字面量表示法: 
var people1={ 
    name:'hehe', 
    age:18 
}; 
json对象的格式是: 
var people1={ 
"name":'hehe', 
"age":18 
}; 

就这点区别吗?这有什么区别吗?请指教。

问题补充:网上的资料, 
1.js数组与json数组的区别? 
答:确切的讲那样的数组叫做关联数组,可使用for in进行遍历,以及'.'运算符取值而JavaScript数组则是JavaScript中Array的一个实例,它具有数组的方法push、pop、slice等等,可通过[]进行取值  (http://www.iteye.com/problems/44435) 


2.但是,js对象(以构造函数的形式创建对象)与json对象(以直接量的形式创建对象)好像就没有区别,不过是2种创建js对象的方式而已……不知道这么说对不对?



首先,要搞清楚这2个东西 
1.JS是一种脚本语言,你所谓的对象,其实还只是处在源码阶段,当这段符合语法的文本被脚本引擎解释之后,在内存中才会产生对象,至于是否符合语法,取决于脚本引擎。 
2.JSON不是一种语言,它仅仅是一种数据的表达方式,从某种程度上来讲,JSON跟XML没有什么区别。 

之所以LZ会有这样的疑虑,原因在于对数据的理解存在偏差,对于JS的字面量来说,这段文本仅仅是代码的一部分,相当于指令,而JSON文本,其本身就表示了数据。二者相同的地方是,看起来都是数据,而且恰巧又都是文本;不同的地方在于,JS字面量的文本是被脚本引擎直接解析的,而JSON的文本,如果要转化为JS对象的话,是交给eval函数来处理的,那么,如何理解JSON的文本,就取决于这个函数,而不是脚本引擎,因为这2者的处理根本就不在一个层面上。 

另外,JS必须交给JS脚本引擎处理,而JSON的字符串,任何程序都能处理,至于引号的问题,取决于JSON解析器的容忍程度,如果你愿意,也可按照自己的意愿写一个解析器,能够容忍包括不写引号,或者单/双引号,甚至其他任何符号作为边界符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值