`

JavaScript中使用&&和|| 的怪異特性_ppk筆記

阅读更多
大多數瀏覽器保存事件目標在evt.target中,但是IE使用evt.srcElement來替代。因此,在任何想使用這個目標對象時,先找出它的儲存地方。
  var evtTarget = evy.target || evt.srcElement;

這句代碼發生了什麼?
JavaScript碰到一個 ||運算符,於是開始計算第一個表達式(evy.target).如果瀏覽器兼容W3C DOM,evy.target就存在,即它不等於underfined,並且現在表達式的值為true.它不再需要繼續計算下一個表達式,所以它中斷了 || 運算。

但是,||並不返回true,而是返回最後求值的表達式的值,也就是evy.target.
它是事件的目標對象,那正是我們需要的。



&& 運算也同理,在運算第一個表達式時,如果是false 或 underfined 或 0(或可以轉化為false的值)時,就不會再去運算。但如果第一個表達式的值為true時,就會返回第二個表達式運算的結果。

即|| 和 &&都會返回最後一次運算的結果,而不是簡單的true或false。

這個特性很方便,但也很容易迷惑人,呵呵~~!
分享到:
评论

相关推荐

    ppk on javascript

    在《ppk on JavaScript》中,作者着重讲解了JavaScript的语法特性,包括变量、数据类型、函数、作用域、闭包等基础概念。此外,还涵盖了错误处理、类型转换、对象和原型等复杂话题。ppk强调了理解JavaScript动态类型...

    ACDSee31SR-1_PPK_FULL cn

    "ACDSee31SR-1_PPK_FULL cn" 版本,特别强调了其在中国市场的优化,提供了完整的中文支持,使得中国用户在使用过程中能够更加得心应手。 首先,我们来深入了解一下ACDSee的核心功能。它不仅是一款快速的图片查看器...

    《ppk谈JavaScript》中文版pdf和原书示例源码

    ppk谈JavaScript JavaScript入门必读之书 本书全方位介绍了JavaScript,主要讨论了浏览器兼容性、可访问性、底层语法以及与HTML结构层的协同等问题。...ppk谈JavaScript.pdf 和 ppk谈JavaScript源代码

    ppk谈JavaScript.pdf

    10. **框架和库**:JavaScript社区中有众多优秀的框架和库,如React、Vue、Angular等,它们提供了更高级别的抽象,简化了复杂应用的开发,书中可能会讨论这些框架的基本原理和使用方法。 通过阅读ppk谈JavaScript,...

    PPK谈JavaScript[扫描版]

    - **书籍定位**:《PPK谈JavaScript》是一本深入探讨JavaScript特性的专业书籍,旨在帮助读者全面了解这门语言,并掌握其高级用法。 #### JavaScript基础知识 1. **变量与数据类型** - 变量声明:`var`, `let`, `...

    JavaScript(ppk谈JavaScript+JavaScript语言精粹修订+Secrets of the JavaScript Ninja)

    标题中的“ppk谈JavaScript”可能指的是Peter-Paul Koch(ppk)的一本书,他在JavaScript社区中是一位知名专家,特别在移动浏览器和跨平台兼容性方面有深入研究。ppk的书籍通常会涵盖JavaScript的基础知识,以及如何...

    CP_CPK_PP_PPK详细定义与计算方法

    CP_CPK_PP_PPK详细定义与计算方法

    ppk谈javascript源码

    7. survey.txt:可能是一个调查问卷的实现,ppk可能讨论了如何使用JavaScript处理复杂的数据收集和提交,以及动态显示结果。 8. dropdown.txt:这个文件可能涉及到下拉菜单的实现,包括动态加载、选择跟踪等,展示...

    ppk谈JavaScript.part07.rar

    6. **ES6及更新版本的新特性**:ppk可能会讨论ECMAScript 6及其后续版本引入的新特性,如箭头函数、类、模板字符串、解构赋值等,这些新特性极大地丰富了JavaScript的语法和功能,让代码更加简洁和高效。 7. **...

    ppk谈JavaScript PDF

    书中既包括理论性的讲解,又给出了相关的示例脚本以进行进一步阐述。通过8个真实项目示例,介绍了JavaScript核心语言、BOM、事件处理、DOM、修改CSS样式表以及数据检索等内容。 本书适合具有一定网页开发经验的Web...

    ppk谈JavaScript.part04.rar

    10. **最新特性和最佳实践**:ppk可能会介绍当前版本JavaScript的新特性,比如async/await、let和const、解构赋值等,并给出如何在项目中合理使用的建议。 以上是对《ppk谈JavaScript.part04》可能涉及内容的概览,...

    ppk谈JavaScript.part01.zip

    在浏览器兼容性和性能优化方面,Ppk可能会分享他的经验,如何利用feature detection检测浏览器特性,避免使用已被废弃的方法,以及如何编写高效的JavaScript代码,减少内存占用和提升执行速度。 总的来说,"ppk谈...

    ppk谈javascript示例源码

    通过"ppk谈JavaScript"的学习,你不仅可以掌握JavaScript的基础知识,还能了解实践中的最佳实践和技巧。书中的示例代码是实践这些理论的绝佳素材,它们将帮助你在实际项目中应用所学,从而提升你的编程技能和解决...

    ppk谈JavaScript.part03.rar

    《ppk谈JavaScript》系列是JavaScript领域的经典读物,作者ppk(Peter-Paul Koch)是一位知名的前端开发者和浏览器兼容性专家。在这个部分,我们聚焦于JavaScript的核心概念、语法以及在实际开发中的应用。 首先,...

    ppk谈JavaScript.part06.rar

    《ppk谈JavaScript》系列是JavaScript领域的经典读物,作者ppk深入浅出地探讨了JavaScript的各种核心概念、语法特性以及在实际开发中的应用。在part06部分,我们可能会涉及以下几个重要的JavaScript知识点: 1. **...

    PPK_ASSERT:PPK_ASSERT是一个跨平台的,自包含的C ++断言库

    2. **自包含**:这个库不需要任何外部依赖,只需包含相关的头文件,就可以立即在项目中使用,方便集成到现有的C++项目中。 3. **可定制性**:PPK_ASSERT允许用户根据自己的需求定制断言的行为。比如,你可以指定在...

    ppk谈JavaScript.part05.rar

    在part05中,我们可以预期讨论深入到JavaScript的核心概念和高级特性。 首先,JavaScript的基础包括变量、数据类型、控制结构(如条件语句和循环)、函数以及对象。变量是存储信息的容器,JavaScript支持动态类型,...

    ppk谈JavaScript.part02.zip

    在"ppk谈JavaScript.part02.zip"中,ppk可能会深入讨论这些话题中的某些,或者介绍更高级的概念,如模块系统、Promise、Generator、异步编程、错误处理、性能优化等。对于初学者和进阶者来说,这样的资源都能提供...

    PPK谈javascript示例

    在JavaScript编程领域,PPK(Peter-Paul Koch)是一位知名专家,他的著作《PPK谈JavaScript》深入浅出地介绍了JavaScript的核心概念和技术。本部分将分析提供的代码示例,主要涉及两个方面:文本输入区的长度限制和...

Global site tag (gtag.js) - Google Analytics