S2SH+ajax+json-------(二)实现异步加载
2015-10-29 21:50
531 查看
1、Ajax中解析Json的两种方法对比分析
eval(); //此方法不推荐JSON.parse(); //推荐方法
一、两种方法的区别
我们先初始化一个json格式的对象:
console.log( jsonObj.name ); // 两种方法都可以正确输入 周星驰
那么问题来了 两种方法有什么区别呢?(下面我们稍微把代码改动一下,蓝色字体为修改部分)
二、扩展问题
复制代码代码如下:
var jsonDate = '{ "name":"周星驰","age":23 }'
大家可以看到在上面测试时一直用红色把包在花括号外面的引号标注了起来,这对引号是很关键却又是常常被忽略的,因为 “eval();” 和 “JSON.parser();” 这两个方法的参数只接受字符串,也就是说只能解析字符串!!
那我不经会有一个思考,我们在初始化的时候若不加引号对,那么它本身就是对象,js可以直接获取对象本身的属性和方法;为什么还要加引号将它变成字符串之后再用 “eval();” 或者 “JSON.parse();” 解析,这样做不是既不环保又没有效率吗?
原因很简单:前端提供给后台的只能是字符串数据格式,后台返回给前台的就看返回的是什么数据格式,是字符串就必须解析之后再用。
(这个小问题一般大家都会忽略掉,不太关注。我之所以好奇的原因也是因为对后台了解的不够,把这个问题抛出来希望对后台不熟的朋友有所帮助,知道是怎么回事后自然而然会加深记忆,在开发过程中就不会漏掉了)
2、$.each,通过它,你可以遍历对象、数组的属性值并进行处理。
使用说明each函数根据参数的类型实现的效果不完全一致:
1、遍历对象(有附加参数)
$.each(Object, function(p1, p2){
this; //这里的this指向每次遍历中Object的当前属性值
p1; p2; //访问附加参数
}, ['参数1', '参数2']);
2、遍历数组(有附件参数)
$.each(Array, function(p1, p2){
this; //这里的this指向每次遍历中Array的当前元素
p1; p2; //访问附加参数
}, ['参数1', '参数2']);
3、遍历对象(没有附加参数)
$.each(Object, function(name, value) {
this; //this指向当前属性的值
name; //name表示Object当前属性的名称
value; //value表示Object当前属性的值
});
4、遍历数组(没有附加参数)
$.each(Array, function(i, value) {
this; //this指向当前元素
i; //i表示Array当前下标
value; //value表示Array当前元素
});
下面提一下jQuery的each方法的几种常用的用法
Js代码
var arr = [ "one", "two","three", "four"];
$.each(arr, function(){
alert(this);
});
//上面这个each输出的结果分别为:one,two,three,four
var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]
$.each(arr1, function(i, item){
alert(item[0]);
});
//其实arr1为一个二维数组,item相当于取每一个一维数组,
//item[0]相对于取每一个一维数组里的第一个值
//所以上面这个each输出分别为:1 4 7
var obj = { one:1, two:2, three:3, four:4};
$.each(obj, function(key, val) {
alert(obj[key]);
});
//这个each就有更厉害了,能循环每一个属性
//输出结果为:1 2 3 4
相关文章推荐
- 获取优酷视频信息json格式
- maven项目下jsp文件中el表达式失效问题
- 第五章:最后一步准备,1.8的Json模型、状态描述机制详解
- JS日期函数
- Json字符串转换为NSDictionary
- js正序&倒序
- js杨辉三角
- 你不知道的JavaScript--Item22 Date对象全解析
- 你不知道的JavaScript--Item22 Date对象全解析
- 百度离线地图JavaScript版本MFC应用离线纠偏
- 简单的javascript时钟
- javascript实现的简单扩大横条
- 简单的javascript时钟
- 使用百度地图JavaScript API构建离线地图应用扣747488886
- 解决JSON.stringify()在IE10下无法使用的问题
- JavaScript 语言编程学习路线
- jsonp详解
- javascript匿名函数自调用
- JavaScript常用方法函数收集
- 更快学习 JavaScript 的 6 个思维技巧