zoukankan      html  css  js  c++  java
  • Javascript中布尔运算符的高级应用

    对象检测语句:var W3CDOM = document.getElementsByTagName && document.createElement

    为了执行运算符&&,两个对象被解释成为布尔型,你可能认为W3CDOM变成了一个布尔值,但事实不是这样,事实是返回最后一次被求值的表达式的值。如果用alert查看alert(W3CDOM),弹出的提醒框显示的是

    function createElement(){

    [native code]

    }

    利用&&和||的怪异特性

    大多数浏览器保存事件目标在evt.target中,但IE是evt.srcElement.因此可以用如下办法

    var evtTarget=evt.target || evt.srcElement;

    如果浏览器兼容W3CDOM,evtTarget就存在,即,它不等于undefined, 并且javascript发现一个表达式值为true,它不再需要继续计算下一个表达式,所以中断了||运算。如果浏览器是IE,evt.Target等于undefined,它被转换为false,因此Javascript继续计算下一个表达式,因为evt.srcElement存在,它的值为true,同样,||不返回true,而是返回最后求值的表达式的值

  • 相关阅读:
    内存Fuzz和WinAFL
    AFL分析与实战
    协议Fuzz技术
    Fuzz技术综述与文件Fuzz
    WireShark学习笔记(一)
    虚拟机连接的问题
    jq 时间的代理和父级的删除
    Windows(WSL2) Linux子系统搭建Docker环境
    JavaCV FFmpeg H264编码
    JavaCV FFmpeg AAC编码
  • 原文地址:https://www.cnblogs.com/cqcmdwym/p/3479362.html
Copyright © 2011-2022 走看看