JS in运算符 问题
来源:百度知道 编辑:UC知道 时间:2024/06/14 16:34:58
<script>
var arr = ["a","b","2","3","str"];
var result = ("b" in arr);
var result1 = (4 in arr);
document.write(result+"<br>");
document.write(result1+"<br>");
</script>
为什么第一个返回false呢?
var arr = ["a","b","2","3","str"];
var result = ("b" in arr);
var result1 = (4 in arr);
document.write(result+"<br>");
document.write(result1+"<br>");
</script>
为什么第一个返回false呢?
4 in arr 表示数组中arr[4]存在
"b" in arr 表示数组中arr[“b”]不存在
判断是否在数组中不可这么用
var arr = ["a","b","2","3","str"];
var result=false;
var result1=false;
for(var i in arr){
if("b"==arr[i])
result=true;
if(4==arr[i])
result1=true;
}
document.write(result+"<br>");
document.write(result1+"<br>");
这样可以判断的
in 运算符并不是直接在数组中查找是否存在指定的值!
如果右边是数组左边是数字,会把左边的数字 (字符串形式的也可以如 "2" in arr 等于 2 in arr)当成一个索引去检查,如果索引是合法的就返回true。
如果右边是数组左边是字符串 比如"id",会把左边的值当成一个属性去检查,如果找到该属性就返回true。
如果右边是对象这个时候不管左边字符串还是数字,会把左边的值当成一个属性去检查,如果找到该属性就返回true。
所以在上面的例子中:
第一个 ("b" in arr);中的 "b" 不是索引,arr中也没有这个属性 故返回 false.
第二个 (4 in arr);中的 4 是合法索引(上面的arr的合法索引是0-4),故返回 true.
JS,里面?运算符有什么用? java运算符问题 vb运算符问题 c++运算符问题 运算符重载问题 ++运算符问题 java运算符的问题 C++运算符的问题 求址运算符&问题 C++运算符重载问题,,,,