Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 奇怪的js数组行为_Javascript_Jquery - Fatal编程技术网

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);
});