• 【Javascript学习笔记】JavaScript中in操作符的学习(附上MDN上IN的翻译说明)


    首先:附上MDN官网IN操作符的介绍(原文链接

    下面是具体翻译:

      in:

        概括:

          判断指定对象是否存在指定属性,如果存在,返回true,否则,false

        语法:

          prop in objectName

        参数说明:

          prop:代表对象的属性(字符串类型)或数组的索引(数值类型)

          objectName:待检测的对象

        描述:

            例子帮助说明:

            检测数组的键值:

              

    1 var ary=['one','two','three'];
    2
    3 ary.length=3;
    4
    5 console.log(1 in ary); //true
    6
    7 console.log('three' in ary);//false
    8
    9 console.log(length in ary);//false

      这里要特别注意第7行,in 只能判断数组的键!

            检测对象的属性(也许有同学会问能不能检测对象的方法呢?至少我写到这里的时候想到了,通过测试,答案是肯定的。你也可以自己试试。):

    1 var obj={
    2 name:'bird',
    3 sex:'',
    4 age:22
    5 };
    6
    7 console.log('sex' in obj);//true

      这里要特别注意 字符串 类型,我就犯了这种错,没加引号,导致输出false,感谢Franky

    关于in操作符用在对象字面量和由Stirng construtor构造的string对象的不同:

     1 var obj =new String('Hello Javascript');
    2
    3 console.log('length' in obj);//true
    4
    5 console.log('toString' in obj);//true
    6
    7 var str='Hello World';
    8
    9 console.log('toString' in str);//typeError
    10
    11 console.log('length' in str);//typeError

      关于这点,更详细的说明可以点击这里

    in操作符在delete运算后的用法:

      如果你通过delete删除对象的某一属性,再用in检测该属性,会返回false(延伸阅读:JavaScript中delete的用法(JavaScript秘密花园 - Object, Prototype))

     1 //对象
    2 var animal ={
    3 name:'bird',
    4 love:'sing',
    5 speed:'80'
    6 };
    7
    8 delete animal.love;
    9
    10 console.log('love' in animal);//false
    11
    12 //数组
    13
    14 var sports=['basketball','football','tabletennis','jump'];
    15
    16 delete sports[2];
    17
    18 console.log(2 in sports);//false
    19
    20 console.log(sports);//['basketball','football',undefinded,'jump'];

      继承的属性:

        查找从原型链上继承的属性返回true

    1 console.log('toString' in {});//true

      这里的toString方法,是Object.prototype的一个方法。

    参考资料:

        1.MDN文档

        2.Javascript学习笔记-详解in运算符

        3.[翻译]JavaScript秘密花园 - Array, Array Constructor, for in loop, typeof, instanceOf更详细地内容请点这里

  • 相关阅读:
    Linux命令笔记
    Linux服务安装集合(1)
    浅谈GIT之通讯协议
    浅谈GIT之底层对象理解
    友情链接
    当黑客被抓是种怎样的体验?
    PHP 中 include 和 require 的区别详解
    论假如有一台无限算力的主机
    msf渗透安卓手机
    aws ec2 安装Elastic search 7.2.0 kibana 并配置 hanlp 分词插件
  • 原文地址:https://www.cnblogs.com/zjczoo/p/in.html
Copyright © 2020-2023  润新知