第四章 表达式和运算符

1、最简单的表达式是原始表达式,是表达式的最小单位——它们不再包含其他表达式。JS中原始表达式包含常量或直接量、关键字和变量。

2、一个对象的属性名不是固定值时,必须使用方括号写法来访问属性。

3、任何一个调用表达式都包含一对圆括号和左圆括号之前的表达式,如果这个表达式是一个属性访问表达式,那么这个调用称作方法调用。

4、运算符的副作用:有一些表达式具有副作用,前后的表达式运算会相互影响,比如赋值运算符、++、--、delete运算符。

5、属性访问表达式和调用表达式的优先级要比所有运算符要高。赋值运算符的优先级非常低,通常最后执行。

6、先计算子表达式的值,再根据运算符的优先级和结合性运算。假设存在a=1,那么b=(a++)+a的计算顺序为:1)计算b,2)计算a++,假设为c,3)计算a,4)计算c+a,5)将c+a的结果赋给b。按照a++的定义,第2步中的结果仍然为1,即c=1,随后a立刻自增1变为2,所以在第3步中,a=2,最终b=1+2=3.

7、位运算符要求它的操作数是整数。按位非相当于改变一个数的符号并减去1:~5=-6.

8、位运算符将NaN/Infinity/-Infinity都转换为0.

9、<<左移,将一个数左移1位相当于它乘以2,>>带符号右移,相当于除以2(忽略余数).>>>无符号右移,左边的高位总是填补0.

10、+号运算符更偏爱字符串,如果其中一个操作数是字符串的话,则进行字符串连接操作;而比较操作符更偏爱数字,只有在两个操作数都是字符串的时候,才会进行字符串的比较。

11、in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望它的右操作数是一个对象。如果右侧的对象拥有一个名为左操作数值的属性名,那么表达式返回true。注意在数组中,var data=[7,8,9],7 in data返回false,因为7代表索引为7,非数组中是否有7这个值。

12、逻辑与&&操作符。首先计算左侧的值,如果左侧计算结果是假,这时&&简单的返回左操作数的值,不计算右操作数;如果左侧值计算结果为真,&&将计算右操作数的值并将其返回作为整个表达式的计算结果,常用于有条件的执行代码(满足左侧条件后执行右侧)。这种行为称为“短路”。逻辑或||具有类似特性,如果左侧值为真,那么返回这个值,如果左侧值为假,那么返回右侧的值,常用于给参数提供默认值

13、三元运算符?:  典型的应用场景——判断一个变量是否定义或拥有一个有意义的真值,如果有意义则使用它,如果无意义则使用一个默认值(类似||)。

14、typeof NaN 返回“number”。typeof null返回“object”。

js-权威指南学习笔记3的更多相关文章

  1. js权威指南---学习笔记02

    1.JS只有函数作用域,没有块级作用域这个概念: 它有一个特性——声明提前:在同一个函数中不同位置声明的变量,都被提前在函数开始的时候,执行声明操作:在原先位置执行赋值操作: 2.声明的全局变量,相当 ...

  2. js权威指南学习笔记(一)类型、值和变量

    1.数据类型:原始类型(primitive type) 和对象类型(object type) 原始类型包括数字.字符串和布尔值: 除数字.字符串.布尔值.null(空).undefined(未定义), ...

  3. js权威指南---学习笔记01

    1.当函数赋值给对象的属性时,就变为了方法:2.被零整除不报错,只会返回无穷大(Infinity)或者负无穷大.例外:零除以零等于非数字(NaN).3.NaN与任何值都不相等! 4.Javascrip ...

  4. js权威指南学习笔记(四)对象

    1.创建对象 (1).通过对象直接量的方式创建 说明:对象直接量是由若干名/值对组成的映射表,名/值对中间用冒号分隔,名/值对之间用逗号分隔,整个映射表用花括号括起来. 如:       5 5   ...

  5. js权威指南学习笔记(三)语句

    1.声明语句 如果用var声明的变量没有初始化,那么这个变量的值会被初始化为undefined. 函数声明语句的语法如下:       4 4           1 console.log(func ...

  6. js权威指南学习笔记(二)表达式与运算符

    1.数组初始化表达式 数组直接量中的列表逗号之间的元素可以省略,这时省略的空位会填充undefined.如:       2 2           1 var arr = [1,,,,,6]; 2 ...

  7. JavaScript 权威指南-学习笔记(一)

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! ## JavaScript 权威指南-学 ...

  8. 《JS权威指南学习总结》

    JS权威指南学习总结:http://www.cnblogs.com/ahthw/category/652668.html

  9. 《JS权威指南学习总结--开始简介》

    本书共分成了四大部分: 1.JS语言核心 2.客户端JS 3.JS核心参考 4.客户端JS核心参考 其中 <JS权威指南学习总结--1.1语法核心> 是:第一部分JS语言核心 各章节重点 ...

  10. HTTP权威指南-学习笔记

    目录 HTTP权威指南-学习笔记 HTTP: Web的基础 URL与资源 HTTP报文 连接管理 HTTP结构 Web服务器 代理 缓存 集成点: 网关,隧道及中继 Web机器人 识别,认证与安全 客 ...

随机推荐

  1. Java 日期加减

    import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class Test ...

  2. 初识storm

    storm是Twitter开发的一个开源的分布式实时计算系统,可以简单可靠的处理大量的数据流.storm有很多的应用场景,如实时分析,在线机器学习,持续计算,分布式RPC,ETL等等.storm支持水 ...

  3. 二:maven构建module

    通常情况下,我们一个项目是需要分多个模块的,这是我们用maven管理项目就需要构建一个多模块的项目: 通常的结构是一个模块中有一个主项目,下面包含多个子项目,如果是web项目则子项目中有一个是java ...

  4. struts2中s:select标签的使用

    1.第一个例子: <s:select list="{'aa','bb','cc'}" theme="simple" headerKey="00& ...

  5. centos7搭建kafka集群-第一篇

    Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...

  6. 【BZOJ3992】【SDOI2015】序列统计 EGF+多项式快速幂+循环卷积

    如果是求$n$个数之和在模$m$意义下为$x$,那么做法是显然的. 但是这道题问的是$n$个数之积在模m意义下为$x$,那么做法就和上面的问题不同. 考虑如何把乘法转换成加法(求log): 题目中有一 ...

  7. openerp学习笔记 视图(tree\form)中隐藏按钮( 创建、编辑、删除 ),tree视图中启用编辑

    视图(tree\form)中隐藏按钮( 创建.编辑.删除 )create="false" edit="false" delete="false&quo ...

  8. windows下python3.6版本安装pygame

    参考:http://blog.csdn.net/a380331382/article/details/77063152 首先,进入这个网站:http://www.lfd.uci.edu/~gohlke ...

  9. Mysql的预编译和批处理

    MySQL的预编译功能 预编译的好处 大家平时都使用过JDBC中的PreparedStatement接口,它有预编译功能.什么是预编译功能呢?它有什么好处呢? 当客户发送一条SQL语句给服务器后,服务 ...

  10. java面试④数据库部分

    2.3.1 数据库的分类及常用的数据库 数据库分为:关系型数据库和非关系型数据库 关系数据库:mysql,oracle,sqlServer 非关系型:redis,mongoDB 2.3.2 简单介绍一 ...