精华内容
下载资源
问答
  • 主要介绍了javascript中in运算符用法,实例分析了in运算符的相关使用技巧,非常具有实用价值,需要的朋友可以参考下
  • JavaScript的in运算符官方:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/in ...JavaScript中的in运算符只能判断对象的index索引,不能判断数组的值,而Python的list和dict都可以 ...

    JavaScript的in运算符官方:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/in

     

    JavaScript中的in运算符只能判断对象的index索引,不能判断数组的值,而Python的list和dict都可以

    展开全文
  • in运算符是javascript语言中比较特殊的一个,可以单独使用作为判断运算符,也常被用于for...in循环中遍历对象属性
  • 之前只知道有for in循环,不清楚in运算符。for in 和 in 遍历对象在原型上增加的属性也会遍历出来。 in运算符的规则:对运算符左右两个操作数的要求比较严格。in运算符要求第1个(左边的)操作数必须是字符串类型...

    之前只知道有for in循环,不清楚in运算符。for in 和 in 遍历对象在原型上增加的属性也会遍历出来

    in运算符的规则:对运算符左右两个操作数的要求比较严格。in运算符要求第1个(左边的)操作数必须是字符串类型或可以转换为字符串类型的其他类型,而第2个(右边的)操作数必须是数组、对象或者new生成的对象。只有第1个操作数的值是第2个操作数的属性名,才会返回true,否则返回false。

    for in 和in运算符的key在对象中是对象的属性,在Array中是数组的索引

    for in

    var obj = {
        "key1":"value1",
        "key2":"value2",
        "key3":"value3"
    };
    function enumeKey(){
        for(var key in obj ){
            console.log(key);
        }
    }
    enumeKey() //key1 key2 key3

    数组的遍历无法保证顺序,尽量避免使用,for-in循环用在非数组对象的遍历上,使用for-in进行循环也被称为“枚举”。所以最好数组使用正常的for循环(还可以使用ECMA-262 标准的for each),对象使用for-in循环。

    // 对象
    var man = {
       hands: 2,
       legs: 2,
       heads: 1
    };
    
    // 在代码的某个地方
    // 一个方法添加给了所有对象
    if (typeof Object.prototype.clone === "undefined") {
       Object.prototype.clone = function () {};
    }

    上面代码,我们有一个使用对象字面量定义的名叫man的对象。在man定义完成后的某个地方,在对象原型上增加了一个很有用的名叫 clone()的方法。此原型链是实时的,这就意味着所有的对象自动可以访问新的方法。为了避免枚举man的时候出现clone()方法,你需要应用hasOwnProperty()方法过滤原型属性。如果不做过滤,会导致clone()函数显示出来,在大多数情况下这是不希望出现的。

    // 1.
    // for-in 循环
    for (var i in man) {
       if (man.hasOwnProperty(i)) { // 过滤
          console.log(i, ":", man[i]);
       }
    }
    /* 控制台显示结果
    hands : 2
    legs : 2
    heads : 1
    */
    
    // 2.
    // 反面例子:
    // for-in loop without checking hasOwnProperty()
    for (var i in man) {
       console.log(i, ":", man[i]);
    }
    /*
    控制台显示结果
    hands : 2
    legs : 2
    heads : 1
    clone: function()
    */

    另外一种使用hasOwnProperty()的形式是取消Object.prototype上的方法,好处在于在man对象重新定义hasOwnProperty情况下避免命名冲突。

    for (var i in man) {
       if (Object.prototype.hasOwnProperty.call(man, i)) { // 过滤
          console.log(i, ":", man[i]);
       }
    }
    //另外一种写法,方法变量缓存,jquery的大部分写法
    var i, hasOwn = Object.prototype.hasOwnProperty;
    for (i in man) {
        if (hasOwn.call(man, i)) { // 过滤
            console.log(i, ":", man[i]);
        }
    }

    javascript中in运算符

    注意事项:
    对于一般的对象属性需要用字符串指定属性的名称

    var mycar = {make: "Honda", model: "Accord", year: 1998};
    "make" in mycar  // returns true
    "model" in mycar // returns true
    
    //对于数组属性需要指定数字形式的索引值来表示数组的属性名称(固有属性除外,如length)。
    
    // Arrays
    var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
    0 in trees        // returns true
    3 in trees        // returns true
    6 in trees        // returns false
    "bay" in trees    // returns false (you must specify the index number,
                      // not the value at that index)
    "length" in trees // returns true (length is an Array property)
    
    //in的右边必须是一个对象,如:你可以指定一个用String构造器生成的,但是不能指定字符串直接量的形式:
    
    var color1 = new String("green");
    "length" in color1 // returns true
    var color2 = "coral";
    "length" in color2 // generates an error (color is not a String object)
    
    //如果你使用delete操作符删除了一个属性,再次用in检查时,会返回false,如:
    
    var mycar = {make: "Honda", model: "Accord", year: 1998};
    delete mycar.make;
    "make" in mycar;  // returns false
    
    var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
    delete trees[3];
    3 in trees; // returns false
    
    
    //如果你把一个属性值设为undefined,但是没有使用delete操作符,使用in检查,会返回true.
    
    var mycar = {make: "Honda", model: "Accord", year: 1998};
    mycar.make = undefined;
    "make" in mycar;  // returns true
    
    
    var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
    trees[3] = undefined;
    3 in trees; // returns true

    javascript对象运算符

    • in 判断左侧运算数是否为右侧运算数的成员
    • instanceof 判断对象是否属于某个类或构造函数
    • new 根据构造函数创建一个新的对象,并初始化该对象
    • delete 删除指定对象的属性,数组元素或变量
    • .及[] 存取对象和数组元素,如果把key赋值为变量var,只能用[var]
    • () 函数调用,改变运算符优先级等
    展开全文
  • Kotlin系列之in运算符

    千次阅读 2018-01-17 22:43:10
    今天我们聊聊Kotlin中的in运算符。 其实我们上一节也看到了in的身影,那里它是用来迭代集合或者map的,我们这里说说in的其他用处。

    今天我们聊聊Kotlin中的in运算符。

    其实我们上一节也看到了in的身影,那里它是用来迭代集合或者map的,我们这里说说in的其他用处。

    in用于检查区间内的成员

    in运算符常常用来检查一个值是否在某个区间内。它还有对应的逆运算!in用来检查某个值不在某一个区间内。

    我们写一个函数,用来检测一个字符是否是英文字母

    Kotlin代码

    fun isLetter(c: Char) = c in 'a'..'z' || c in 'A'..'Z'

    虽然代码只有一行,但却包含了我们前面说过的多个知识点。
    1. 这里用到了表达式函数体。
    2. 这里用到了区间('a'..'z')。
    3. 这里得益于类型推导让我们可以省略函数返回值的显式书写。

    那我们再照猫画虎写一个判断一个字符不是数字的函数。
    Kotlin代码

    fun isNotDigit(c: Char) = c !in '0'..'z'

    in与when的组合使用

    前面我们也说过了when关键字,这里我们用in检查作为when的分支,可能说的有点抽象,这里上代码。

    Kotlin代码

    fun recog(c: Char) = when(c){
        in '0'..'9' -> "It's a digit"
        in 'a'..'z', in 'A'..'Z' -> "It's a letter"
        else -> "don't know..."
    }

    这里通过对传入的c进行in操作符的判断,一旦c在对应的区间内,则返回对应的字符串,如果都不在则返回”don’t know…”。

    in用于其它类型的区间

    前面我们只了解到字符区间,也知道之所以可以写'a'..'z'这样的字符区间是由于ASCII码,更进一步说,是因为ASCII码的存在让它们是可比较的,那有没有其它区间形式呢?
    答案当然是有哇。对于任意的实现了java.lang.Comparable接口的的类(换句话说这个类的实例支持比较操作),那么就能创建这种类型的对象的区间。

    比如,String类实现了Comparable接口,内部是按字母表的顺序进行比较的,那我们就可以创建两个字符串的一个区间,比如

    println("Kotlin" in "Java".."Scala")

    输出为true,原因在于按照字母序,只比较第一位K位于JS之间。
    当然,in还有一个常见的用途,用于判断一个集合是不是包含了某个值。

    println("Kotlin" in setOf<String>("Java", "Scala"))

    这种用法类似于Java中的contains()方法,都是判断某个值是否包含在一个集合中。

    写在最后

    这一节只讨论了in操作符的一些用法,更深层次的用法将在后续推出。

    展开全文
  • javascript中的in运算符

    2015-03-14 09:32:12
    in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望他的又操作数是一个对象;如果右侧对象拥有一个名为左操作数值的属性名,那么表达式返回true:var point = {x:1,y:1}; "x" in point //true "z" in ...

    in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望他的又操作数是一个对象;如果右侧对象拥有一个名为左操作数值的属性名,那么表达式返回true:

    var point = {x:1,y:1};
    "x" in point //true
    "z" in point //false
    "toString" in point //true
    
    var ary = [1,2,3];
    "0" in ary; //true,ary含有索引0("0"回转换为0);
    1 in ary;   //true,ary含有索引1
    3 in ary;   //false
    展开全文
  • IN运算符的使用

    千次阅读 2014-04-21 15:16:22
    6.3 IN运算符 在查询中,有时只要满足多个条件中的一个条件即可,如查询地址在北京、上海或者重庆的学生信息,这时候可以使用IN运算符。 6.3.1 IN运算符的使用 IN运算符允许根据一行记录中,是否有...
  • JS中关于in运算符的问题。 定义: in运算符虽然也是一个二元运算符,但是对运算符左右两个操作数的要求比较严格。in运算符要求第1个(左边的)操作数必须是字符串类型或可以转换为字符串类型的其他类型,而第2个...
  • oracle 使用IN运算符

    千次阅读 2016-10-04 17:25:16
    当在多行子句查询中使用IN运算符时,外查询会尝试与子查询结果中的任何一个结果进行匹配,只要有一个匹配成功,则外查询返回当前检索的记录。 例子: select * from cldjxx where hphm in (select hphm from cljbxx ...
  • 三目运算符也就是三元运算符 一些语言(如Java)的三元表达式形如: 判定条件?为真时的结果:为假时的结果 result=x if x Python的三元表达式有如下几种书写方法: if __name__ == '__main__': a = '' b = 'True' ...
  • in运算符是javascript语言中比较特殊的一个,可以单独使用作为判断运算符,也常被用于for...in循环中遍历对象属性 一、判断 语法 prop in objectName 如果objectName指向的对象中含有prop这个属性或者...
  • 2018/2/11 in运算符

    2018-02-11 21:41:38
    in运算符in运算符也是一个二元运算符,但是对运算符左右两个操作数的要求比较严格。in运算符要求第1个(左边的)操作数必须是字符串类型或可以转换为字符串类型的其他类型,而第2个(右边的)操作数必须是数组或对象...
  • JS中关于in运算符

    2015-06-19 11:51:59
    近期看某框架源码时,发现以下代码用于当前环境是否支持触摸事件。...in运算符要求第1个(左边的)操作数必须是字符串类型或可以转换为字符串类型的其他类型,而第2个(右边的)操作数必须是数组或对象。只有
  • in运算符-----js

    2017-09-21 16:48:33
    Javascript学习笔记-详解in运算符 in运算符是javascript语言中比较特殊的一个,可以单独使用作为判断运算符,也常被用于for...in循环中遍历对象属性 一、判断  语法  prop in objectName  ...
  • //in运算符,要求其左边的运算数是一个字符串,或可以被转换为字符串,右边的运算数是一个对象或数组。 //如果该运算符左边的值是其右边对象的一个属性名,它返回true var point = {x:1,y:1}; //定义一个对象 ...
  • for/in语句及in运算符的使用

    千次阅读 2013-01-31 09:33:53
    这篇博文时关于学习javascript中我一直很少使用的一个知识点,in运算符和for/in循环语句。这两个知识点都是和对象有关系,当然这个对象也包括数组。于是,参考了网上的部分资料,总结了使用过程中的一些技巧。 1. ...
  • js中in运算符讲解

    2020-10-01 17:45:52
    JavaScript中in操作符 定义:in操作符用来判断某个属性属于某个对象,可以是对象的直接属性,也可以是通过prototype继承的属性。 1.对于数组属性需要指定数字形式的索引值来表示数组的属性名称(固有属性除外,如...
  • col列 表,所以我使用子查询作为: SELECT * FROM offc.col WHERE ( dept_id, year, marks ) IN (SELECT dept_id, year, Max(marks) marks FROM offc.col GROUP BY dept_id, year ORDER BY dept_id, year);...
  • JavaScript 中 in 运算符的用法详解

    千次阅读 2021-09-11 16:04:58
     如果指定的属性在指定的对象或其原型链中,则 in 运算符返回 true。 语法 prop in object 参数 prop   一个字符串类型或者 symbol 类型的属性名或者数组索引(非 symbol 类型将会强制转为字符串)。 object...
  • 使用IN运算符实现查询

    千次阅读 2018-07-13 16:57:06
  • in运算符 在 MDN 中是这么定义它的 : 如果指定的属性在指定的对象或其原型链中,则in 运算符返回true。 还是用上面的例子来演示: console . log ( 'foo' in obj ) // true 可以看到 in ...
  • python中的in运算符

    2010-07-13 12:57:00
    in在python中也是计算,是python中所有序列都支持的一种基础的的方便的运算。====================================a = '12345'print '1' in a #=> Truea = (1,2,3,4)print 1 in a #=> Truea = [1,2,3,4]print...
  • in和delete运算符

    2016-09-01 22:19:24
    in运算符、delete运算符 in 运算符 语法:属性名 in 对象 -->看对象中是否有该属性 索引值 in 数组 -->看数组中时候有这个索引值 返回值: 都是布尔值 例如: 1.对象 var obj = { name: "tom", age: 18 } ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 283,278
精华内容 113,311
关键字:

in运算符