JavaScript 函数 eval() , json字符串转换

eval()

eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。
如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句

console.log(eval('2 + 2'));
// Expected output: 4

console.log(eval(new String('2 + 2')));
// Expected output: 2 + 2

console.log(eval('2 + 2') === eval('4'));
// Expected output: true

console.log(eval('2 + 2') === eval(new String('2 + 2')));
// Expected output: false

开发需求:需要拿到字符串中的数组,

const json = "['1','2']"
console.log(eval(json))

变成数组,不再是字符串
在这里插入图片描述

语法

一个表示 JavaScript 表达式、语句或一系列语句的字符串。表达式可以包含变量与已存在对象的属性。

eval(string)

返回值

返回字符串中代码的返回值。如果返回值为空,则返回 undefined。

描述

如果 eval() 的参数不是字符串, eval() 会将参数原封不动地返回。

eval(new String("2 + 2")); // 返回了包含"2 + 2"的字符串对象
eval("2 + 2"); // returns 4

eval() 可用于将 JSON 文本转换为 JavaScript 对象。

语法:

var obj = eval ("(" + txt + ")");  //必须把文本包围在括号中,这样才能避免语法错误 

由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。

注意:当字符串中包含表达式时,eval() 函数也会编译并执行,转换会存在安全问题

var txt = '{ "name":"runoob", "alexa":10000, "site":"[www.runoob.com]" }'
var obj = eval ("(" + txt + ")");

在这里插入图片描述

浏览器自带对象JSON,JSON.parse()

var obj = JSON.parse(text[, reviver])
//text:必需, 一个有效的 JSON 字符串。解析前要确保你的数据是标准的 JSON 格式,否则会解析出错。
//reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。
JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值