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


Posted in Javascript onApril 21, 2013

JavaScript 对象定义方式
1. var obj = new Object()

<!--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>

2. var obj = {};
<!--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'};
对象如何转换成string
如果直接使用 :
obj.toString()

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

其实就是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 格式的, 就可以直接转换为obj了。
比较以下以下两种的方式:

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

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

为什么会有这种用法: 因为很多时候,我们会从服务端返回这种字串供前端处理。

Javascript 相关文章推荐
js 覆盖和重载 函数
Sep 25 Javascript
jquery之empty()与remove()区别说明
Sep 10 Javascript
EasyUI中的tree用法介绍
Nov 01 Javascript
jquery根据name属性查找的小例子
Nov 21 Javascript
Javascript常用小技巧汇总
Jun 24 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
Jan 10 Javascript
js 数字、字符串、布尔值的转换方法(必看)
Apr 07 Javascript
JS ES6中setTimeout函数的执行上下文示例
Apr 27 Javascript
vue环境搭建简单教程
Nov 07 Javascript
微信小程序canvas分享海报功能
Oct 31 Javascript
微信小程序如何加载数据库真实数据的实现
Mar 04 Javascript
vue router返回到指定的路由的场景分析
Nov 10 Javascript
jquery获取自定义属性(attr和prop)实例介绍
Apr 21 #Javascript
js和jquery对dom节点的操作(创建/追加)
Apr 21 #Javascript
jquery获取焦点和失去焦点事件代码
Apr 21 #Javascript
jQuery获取注册信息并提示实现代码
Apr 21 #Javascript
jQuery隔行变色与普通JS写法的对比
Apr 21 #Javascript
jQuery模拟超链接点击效果代码
Apr 21 #Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
Apr 21 #Javascript
You might like
附件名前加网站名
2008/03/23 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
拖动一个HTML元素
2006/12/22 Javascript
js文字滚动停顿效果代码
2008/06/28 Javascript
Javascript Math对象
2009/08/13 Javascript
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
2012/02/07 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
js使用栈来实现10进制转8进制与取除数及余数
2014/06/11 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
js实现拖拽上传图片功能
2017/08/01 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python实现最常见加密方式详解
2019/07/13 Python
python的pstuil模块使用方法总结
2019/07/26 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
团员的自我评价
2013/12/01 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
初中信息技术教学计划
2015/01/22 职场文书
老龙头导游词
2015/02/11 职场文书
法制主题班会教案
2015/08/13 职场文书