位置: IT常识 - 正文

js字符串转换为对象格式的3种方法(js字符串转换为数字类型)

编辑:rootadmin
js字符串转换为对象格式的3种方法

推荐整理分享js字符串转换为对象格式的3种方法(js字符串转换为数字类型),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js字符串转换为数值,js字符串转换为日期格式,js字符串转换为数组,js字符串转换为数组,js字符串转换为对象,js字符串转换为数组,js字符串转换为日期,js字符串转换为整数,内容如对您有帮助,希望把文章链接给更多的朋友!

背景:

js字符串转换为对象格式,一般都会想到JSON.parse(),但数据不是标准的 JSON 格式的时候会解析出错,这时候就可以使用eval() 函数、new Function()方法来转换。

常用3种将字符串string转为json对象 方法:

var str = '{"name":"小明","age":18}';var json = JSON.parse(str);//第一种var json2 = eval("(" + str + ")");//第二种var json3 = (new Function("return " + str))();//第三种

 打印效果:

 

详细说明:

JSON.parse()

语法:

JSON.parse(text[, reviver]);//text:必需, 一个有效的 JSON 字符串。//reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。

解析前要确保你的数据是标准的 JSON 格式,否则会解析出错。

情况一:有的人可能会习惯写成对象形式的字符串,如:str = '{name:"小明",age:18}'; 结果使用JSON.parse()来转化会报错,因为使用JSON.parse需严格遵守JSON规范。

情况二:JSON.parse使用单引号来套双引号,如果反过来写呢,如:var str = "{'name':'小明', 'age':18}";(相信也不少人习惯用双引号套单引号) 结果使用JSON.parse()来转化也会报错 

js字符串转换为对象格式的3种方法(js字符串转换为数字类型)

eval() 函数

定义和用法:

eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。

如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。

语法:

eval(string)参数描述string必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。

eval()的返回值

eval()的返回值遵循以下规则:

1.如果eval()的参数不是字符串,那么eval()将直接返回参数。

2.如果eval()的参数是字符串,那么eval()将这个字符串解析成代码后进行执行,并返回最后一行代码执行的结果。

3.如果字符串无法解析成合法的代码,eval()将抛出SyntaxError错误 

new Function()

这个特殊的new Function表面看起来很奇怪,但在实践中显得非常有用。

语法:

let func = new Function(arg1, arg2, ..., body);

历史原因,参数也可以以逗号分隔的列表的形式给出。

这三个意思相同:

new Function('a', 'b', 'return a + b'); // 基础语法new Function('a,b', 'return a + b'); // 逗号分隔new Function('a , b', 'return a + b'); // 逗号加空格分隔

使用new Function创建的函数,其[[Environment]]引用全局词法环境,而不是包含该函数的外部词法环境。因此,他们不能使用外层的变量。但这确实很好,因为它可以使我们免于错误。明确地传递参数在架构上是一种更好的方法,并且不会在使用minifiers时不会产生问题。 

本文链接地址:https://www.jiuchutong.com/zhishi/297742.html 转载请保留说明!

上一篇:【小沐学C++】C++ MFC中嵌入web网页控件(WebBrowser、WebView2、CEF3)

下一篇:HTML与PyCharm

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络