JavaScript对象与字符串转换详解:定义、遍历与eval用法

作者:小满时间:2026-10-27 09:51:03浏览:566

本文详解JavaScript中对象的两种定义方式,探讨对象转换为字符串时的默认行为,并重点解析如何利用eval函数结合for-in循环动态获取对象属性值,以及将服务端返回的JSON格式字符串转换为可操作对象的方法。

JavaScript 对象定义方式

JavaScript对象定义方式

在JavaScript中,创建对象实例通常有两种常见写法。


具体实现代码如下:

 
<!--Add by oscar999-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Author" CONTENT="oscar999">
<script>
var obj = new Object();
obj.key = "11";
alert(obj.key);
</script>
</HEAD>
<BODY>
</BODY>
</HTML>

另一种更简洁的写法是使用对象字面量。


具体实现代码如下:

 
<!--Add by oscar999-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Author" CONTENT="oscar999">
<script>
var obj = {};
obj.key = "11";
alert(obj.key);
</script>
</HEAD>
<BODY>
</BODY>
</HTML>

在定义对象字面量时,还可以直接初始化键值对。


var obj = {key:'11'};


对象与字符串转换及eval应用

接下来讨论如何将对象转换为字符串。


如果直接调用对象的toString方法:


具体实现代码如下:

 
obj.toString()

得到的结果通常是 [object Object] 这样的字符串。


从第二种定义方式(var obj = {key:'11'};)可以看出,JavaScript对象对应的字符串形式是一对大括号包裹着一系列键值对。



这实际上就是JSON的数据格式,如果不熟悉,建议学习一下JSON格式规范。


采用以下方式即可提取obj中的key和value。


具体实现代码如下:

 
<!--Add by oscar999-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Author" CONTENT="oscar999">
<script>
var obj = {attr1:'value1',attr2:'value2'};
for(attr in obj)
{ 
alert(attr);
alert(eval("obj."+attr));
} 
</script>
</HEAD>
<BODY>
</BODY>
</HTML>

这里需要重点解释为什么取值时使用:


具体实现代码如下:

 
eval("obj."+attr);

而不是直接使用:


具体实现代码如下:

 
obj.attr

因为obj.attr查找的是obj中key值为attr的value,但obj中并没有名为attr的key。


这里的attr是一个变量,因此需要借助eval函数来动态解析。



String 如何转换为对象

字符串转换为对象

从对象格式可以看出,如果字符串格式定义为JSON格式,就可以直接转换为对象。


对比以下两种定义方式:


具体实现代码如下:

 
var obj1 = {attr1:'value1',attr2:'value2'};
var obj2 = "{attr1:'value1',attr2:'value2'}";

obj1直接是一个对象,而obj2只是一个字符串。


使用eval(obj2)即可将其转换为对象。



这种用法之所以存在,是因为很多时候我们需要从服务端返回这种字符串供前端处理。

作者最新文章