一开始我是这么写的:
function aryPush(){
var y = 'y';
var ar = ['x'];
if (y){
ar.push(y);
}
alert(ar); //[x,y]
}
没问题,输出正是我要的结果。
但是我嫌用if写在3行不够简洁,于是改为下面的:
function aryPush(){
//var y = 'y';
var ar = ['x'];
ar = y ? ar.push(y) : ar;
//ar = ar.push(y);
alert(ar); //2
}
无论我是否定义y,结果都是输入2。实在想不明白。
js入门菜鸟,请勿见笑,请不吝赐教!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
push方法
不返回原数组,所以你把它的返回值赋值给ar
是不对的。也就是说,你想往数组后面添加数据,直接调用push
就好了,没必要再赋值。array.push
返回的是新的数组长度,所以是2
。未定义
y
的话会出错的,一定是y
在哪里定义了。