关于 eval 的报错 Uncaught ReferenceError: False is not defined

var obj ={'id': 16, 'name': '管理员', 'delflag': False, 'grade': 1000000.0}
VM3614:1 Uncaught ReferenceError: False is not defined
at <anonymous>:1:47
(anonymous) @ VM3614:1
var obj
undefined
obj ={'id': 16, 'name': '管理员', 'delflag': False, 'grade': 1000000.0}
VM3633:1 Uncaught ReferenceError: False is not defined
at <anonymous>:1:43
(anonymous) @ VM3633:1
obj = "{'id': 16, 'name': '管理员', 'delflag': False, 'grade': 1000000.0}"
"{'id': 16, 'name': '管理员', 'delflag': False, 'grade': 1000000.0}"
alert(obj)
undefined
var oo =eval("("+obj+")")
VM3699:1 Uncaught ReferenceError: False is not defined
at eval (eval at <anonymous> ((index):1), <anonymous>:1:39)
at <anonymous>:1:9
(anonymous) @ VM3699:1
(anonymous) @ VM3698:1
var oo =eval(obj)
VM3724:1 Uncaught SyntaxError: Unexpected token :
at <anonymous>:1:14
(anonymous) @ VM3723:1
obj
"{'id': 16, 'name': '管理员', 'delflag': False, 'grade': 1000000.0}"
typeof obj
"string"
obj ={'id': 16, 'name': '管理员', 'delflag': False, 'grade': 1000000.0}
VM3755:1 Uncaught ReferenceError: False is not defined
at <anonymous>:1:43
(anonymous) @ VM3755:1
obj ={'id': 16, 'name': '管理员', 'grade': 1000000.0}
{id: 16, name: "管理员", grade: 1000000}
alert(obj)
undefined
var test =eval("("+obj+")")
VM3847:1 Uncaught SyntaxError: Unexpected identifier
at <anonymous>:1:23
(anonymous) @ VM3846:1
var test =eval("("+"obj"+")")
undefined
typeof test
"object"
alert(test)
undefined

原因是:字典里存储了一个False的变量,js无法识别,SO  报错,

更重要的是,因为不是正规的json格式,所以会报错,正规的 key 是必须要有双引号的。(即使是单引号也不行。)

 

错误代码:

 

var res = "[{id:1,name:'liming'},{id:2,name:'xiaobai'}]";
var objRes = JSON.parse(res);
console.log(objRes)
1
2
3
正确代码:

 

var res = '[{"id":1,"name":"liming"},{"id":2,"name":"xiaobai"}]';
var objRes = JSON.parse(res);
console.log(objRes)


 

转载于:https://www.cnblogs.com/aashui/p/9941447.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值