`
hhr_michael
  • 浏览: 74306 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类
最新评论

JavaScript高级程序设计 (读书笔记2)

阅读更多
一元运算符

一元运算符只有一个参数,即要操作的对象或值。它们是ECMAScript中最简单的运算符。

1. delete

delete运算符删除对以前定义的对象属性或方法的引用。
var o = new Object();
o.name = "jack";
alert(o.name);
delete o.name;
alert(o.name);

delete运算符不能删除开发者未定义的属性和方法。

2. void

void运算符对任何值都返回undefined。该运算符通常用于避免输出不应该输出的值, 如:
<a href="javascript:window.open('about:blank')">click me</a>
返回[object Window]

<a href="javascript:void(window.open('about:blank'))">click me</a>
避免返回[object Window]

记住,没有返回值的函数真正返回的都是undefined。



位运算符

1. 重温整数
ECMAScript整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数)。
在ECMAScript中,所有整数字面量默认都是有符号整数。

记住,在处理有符号整数时,开发者不能访问位31。
记住,所有整数字面量都默认存储为有符号整数。只有用ECMAScript的位运算符才能创建无符号整数。

2. 位运算NOT
NOT是三步的处理过程:

(1) 把运算数转换成32位数字;
(2) 把二进制形式转换成它的二进制反码;
(3) 把二进制反码转换成浮点数。

位运算NOT实质上是对数字求负,然后减1,因此25变为-26。
var iNum1 = 25;
var iNum2 = ~iNum1;//var iNum2 = -iNum1-1; iNum2 = >-26


Boolean运算符

1. 逻辑NOT

在ECMAScript中,逻辑NOT运算符与C和Java中的逻辑NOT运算符相同,都由感叹号(!)表示。

与逻辑OR和逻辑AND运算符不同的是,逻辑NOT运算符返回的一定是Boolean值。逻辑NOT运算符的行为如下:

如果运算数是对象,返回false。

如果运算数是数字0,返回true。

如果运算数是0以外的任何数字,返回false。

如果运算数是null,返回true。

如果运算数是NaN,返回true。

如果运算数是undefined,发生错误。

2. 逻辑AND运算符

如果某个运算数不是原始的Boolean型值,逻辑AND运算并不一定返回Boolean值:

如果一个运算数是对象,另一个是Boolean值,返回该对象。

如果两个运算数都是对象,返回第二个对象。

如果某个运算数是null,返回null。

如果某个运算数是NaN,返回NaN。

如果某个运算数是undefined,发生错误。

3. 逻辑OR运算符

与逻辑AND运算符相似,如果某个运算数不是Boolean值,逻辑OR运算并不一定返回Boolean值:

如果一个运算数是对象,另一个是Boolean值,返回该对象。

如果两个运算数都是对象,返回第一个对象。

如果某个运算数是null,返回null。

如果某个运算数是NaN,返回NaN。

如果某个运算数是undefined,发生错误。


等性运算符

1. 等号和非等号

在ECMAScript中,等号由双等号(= =)表示,当且仅当两个运算数相等时,它返回true。
非等号是感叹号加等号(!=),当且仅当两个运算数不相等时,它返回true。
为确定两个运算数是否相等,这两个运算符都会进行类型转换。

执行类型转换的基本规则如下:

如果一个运算数是Boolean值,在检查相等性之前,把它转换成数字值。false转换成0,true转换成1。

如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。

如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串(调用toString()方法)。

如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。

对象 -》 字符串-》 数字

在进行比较时,该运算符还遵守下列规则:

值null和undefined相等。

在检查相等性时,不能把null和undefined转换成其他值。

如果某个运算数是NaN,等号将返回false,非等号将返回true。
重要提示:即使两个运算数都是NaN,等号仍然返回false,因为根据规则,NaN不等于NaN。

如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一个对象,那么等号返回true,否则两个运算数不等。

2. 全等号和非全等号

全等号由三个等号(= = =)表示,只有在无需类型转换运算数就相等的情况下,才返回true。
分享到:
评论

相关推荐

    javascript 高级程序设计 读书笔记(3)

    《JavaScript高级程序设计》是JavaScript开发者的经典教材,它深入探讨了这门语言的核心概念和技术。这篇读书笔记主要聚焦在第三部分,这部分通常涵盖了更高级的主题,如对象、原型、闭包以及模块化等。结合提供的...

    JavaScript高级程序设计 读书笔记之八 Function类及闭包

    JavaScript中的Function类是一种特殊的数据类型,它可以用来动态创建或表示任何开发者定义的函数。通过`new Function()`构造函数,我们可以传递参数列表和函数体来创建一个新的函数。例如,`var sayHi = new ...

    JavaScript高级程序设计 读书笔记之九 本地对象Array

    ### JavaScript高级程序设计读书笔记之九:本地对象Array #### 创建Array对象 在JavaScript中,`Array`是一种非常重要的本地对象,主要用于存储一系列有序的数据。创建`Array`对象的方法有多种,具体包括: 1. **...

    对javascript的一点点认识总结《javascript高级程序设计》读书笔记

    JavaScript,作为一种广泛应用于Web开发的脚本语言,其核心规则和规范由ECMAScript标准定义。ECMA-262是这个标准的正式名称,它详细规定了JavaScript的语法、类型、关键字、保留字、操作符以及对象。ECMAScript为...

    JavaScript高级程序设计 读书笔记之十一 内置对象Global

    在JavaScript中,内置对象是指由ECMAScript标准实现并提供的一类特殊对象,它们独立于宿主环境(例如浏览器或Node.js环境)存在,并在程序执行时自动创建。这些对象提供了许多基本功能和常用方法,使得开发者可以...

    JavaScript高级程序设计 读书笔记之十 本地对象Date日期

    ### JavaScript中的Date对象详解 #### 一、概述 在JavaScript编程语言中,`Date`对象是一种内置对象,用于处理日期和时间数据。它提供了一系列的方法和属性,可以帮助开发者轻松地进行日期时间的操作,如获取当前...

    基于Springboot的学生读书笔记共享系统源码数据库.doc

    ### 基于Springboot的学生读书笔记共享系统关键知识点解析 #### 一、项目背景与目标 本系统旨在为学生提供一个便捷、高效的读书笔记共享平台。随着互联网技术的发展,尤其是移动互联网的普及,学生群体对于知识...

    《微信小程序全栈开发技术与实战》读书笔记模板.pptx

    微信小程序全栈开发技术与实战读书笔记模板 微信小程序全栈开发技术与实战是目前非常热门的开发技术之一,本书共16章,主要包括快速上手、基础组件、设计交互、高级组件、数据访问与管理、分层架构、服务逻辑层实现...

    HeaderFirst读书笔记代码.zip

    这里的"HeaderFirst读书笔记代码.zip"是一个包含作者阅读此书时所编写的源码和笔记的压缩文件,可以帮助读者更直观地理解和学习书中内容。 根据提供的压缩包文件名,我们可以推测这是一系列按照章节顺序排列的HTML...

    Reading-Notes:读书笔记们

    JavaScript高级程序设计(第三版) You don't know JS 系列 ES6 标准入门 Node.JS深入浅出 图解HTTP HTTP权威指南 Head First Java CSS3揭秘 Linux Command Line 大型网站技术架构核心原理与案例分析 锋利的jQuery ...

    JavaScript 函数惰性载入的实现及其优点介绍

    最近看JavaScript高级程序设计,大有收获,接下来几天写一下读书笔记。之前写了一篇Ajax初步理解的随笔,里面有个函数用来创建XmlHttpRequest对象,浏览器兼容性原因,写出的代码通过大量if判断或者try,catch语句将...

    Javascript 面向对象 (声明篇)

    由于才疏学浅,我不得不将《Javascript 高级程序设计》中的部分内容摘抄过来,这些同时也算是我的读书笔记吧。由于 Javascript 面向对象机制及其的重要,而且内容非常的繁多,在这里就分篇章逐个介绍。 使用对象首先...

    my-blog:自己的博客

    JavaScript深入理解系列读书笔记系列这部分只会记载一些笔记,不会深入解读电子书链接:提取码:wube《你不知道JavaScript》中册《JavaScript高级程序设计》数据结构栈队列链表哈希表树图浏览器部分浏览器的主要进程...

    韩顺平html css js笔记.doc

    JavaScript 是一种高级的脚本语言,主要用于网页的交互性和动态效果的实现。JavaScript 可以用来创建动态网页,实现网页的交互性和动态效果。 网页设计 网页设计是 Web 开发的重要部分,网页设计的目的是创建一个...

Global site tag (gtag.js) - Google Analytics