Javascript 奇怪的js数组行为
以下是示例代码:Javascript 奇怪的js数组行为,javascript,jquery,Javascript,Jquery,以下是示例代码: console.log('params is empty: '+(params == '')); console.log('params: '+params); console.log('df: '+params['df']); $.each(params, function(p_name, p_val){ console.log(p_name+': '+p_val); }); 然后回答: params is empty: true params: df: 15.03
console.log('params is empty: '+(params == ''));
console.log('params: '+params);
console.log('df: '+params['df']);
$.each(params, function(p_name, p_val){
console.log(p_name+': '+p_val);
});
然后回答:
params is empty: true
params:
df: 15.03.2012
这是怎么回事?大概是这样的(必须是这样,因为您正在演示如何使用预定义的变量,所以我们无法知道它实际上是什么,除非从您正在对它执行的测试中得出结论),因为params
是一个数组,而不是一个对象
数组被设计用来保存带有数字键的有序值序列
对象的值具有(相对)任意键
字符串化数组只会连接数字键。因此,如果存在数字键,将其与空字符串进行比较只会给出一个假值
$。每个
都注意到它在一个数组上迭代,只点击数字键
df
不是一个数字键。大概是这样的(在显示时必须是这样,使用一个预定义的变量,因此我们无法知道它实际上是什么,除非通过对它执行的测试得出结论),因为params
是一个数组,而不是一个对象
数组被设计用来保存带有数字键的有序值序列
对象的值具有(相对)任意键
字符串化数组只会连接数字键。因此,如果存在数字键,将其与空字符串进行比较只会给出一个假值
$。每个
都注意到它在一个数组上迭代,只点击数字键
df
不是数字键。没什么奇怪的。Params只是一个对象(内置类型的数组)
没什么奇怪的。Params只是一个对象(内置类型的数组)
params
percentance是否有一个toString
方法,其计算结果为”
?@rjz-既然问题说的是“array”,并且没有暗示它有任何不是“df”的属性,那么这似乎是可能的。params
percentance是否有一个toString
方法,其计算结果为
?@rjz-既然问题说的是“array”,并且没有暗示它有任何不是“df”的属性,那么看起来很有可能。
console.log('params is empty: '+(params == '')); //result of Array.toString on empty array = ""
console.log('params: '+params); //result of Array.toString on empty array = ""
console.log('df: '+params['df']); //if params is an object and you do params.df='15.03.2012' then params['df']='15.03.2012'.
$.each(params, function(p_name, p_val){
console.log(p_name+': '+p_val);
});