JS in运算符 问题

JavaScript013

JS in运算符 问题,第1张

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中最常见的就是 if 判断,但是直接写 if(){}else{}太low ,下面是常见的几种js的if判断的写法:

/**

* js 判断的几种写法

*/

var a = 10,b = 20

console.log(a)

console.log(b)

/*最直接*/

if(a >b){

console.log('a大')

}else{

console.log('b大')

}

/*改变1*/

if(a >b) console.log('a大')

if(a <b) console.log('b大')

/*改变2*/

if(a >b) console.log('a大')

else console.log('b大')

/*最简单*/

console.log(a>b ? 'a大' : 'b大')