Heim  >  Artikel  >  Web-Frontend  >  JavaScript对象和字串之间的转换实例探讨_javascript技巧

JavaScript对象和字串之间的转换实例探讨_javascript技巧

WBOY
WBOYOriginal
2016-05-16 17:36:011038Durchsuche
JavaScript 对象定义方式
1. var obj = new Object()
复制代码 代码如下:





New Document

<script> <BR>var obj = new Object(); <BR>obj.key = "11"; <BR>alert(obj.key); <BR></script>





2. var obj = {};
复制代码 代码如下:





New Document

<script> <BR>var obj = {}; <BR>obj.key = "11"; <BR>alert(obj.key); <BR></script>





也可以在定义时初始化值:
var obj = {key:'11'};
对象如何转换成string
如果直接使用 :
复制代码 代码如下:

obj.toString()

得到的是 [object,object] 这样的字串。
从上面的第二种定义方式 (var obj = {key:'11'};) 可以看出, js 的对象对应的字串类是一对大括号里包着一批键值对的方式。

其实就是JSON的数据格式, 不了解的可以学学json 格式。
使用以下方式就可以取出obj 的key 和value了。
复制代码 代码如下:





New Document

<script> <BR>var obj = {attr1:'value1',attr2:'value2'}; <BR>for(attr in obj) <BR>{ <BR>alert(attr); <BR>alert(eval("obj."+attr)); <BR>} <BR></script>





重点说一下为什么取值使用:
复制代码 代码如下:

eval("obj."+attr);

而不是直接使用
复制代码 代码如下:

obj.attr

因为 obj.attr 找到的 obj 中key 值为attr 的value , 但是obj 中并没有attr 的key 值。
这里的attr 是一个变量。 所以 就要借助于eval 的方式了。

String 如何转换为对象
从对象的格式可以看出,如果字串的格式定义成 json 格式的, 就可以直接转换为obj了。
比较以下以下两种的方式:
复制代码 代码如下:

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

obj1 直接是一个对象, obj2 只是一个字串。
使用eval(obj2) 就可以转换为对象了。

为什么会有这种用法: 因为很多时候,我们会从服务端返回这种字串供前端处理。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn