第四章 表达式和运算符

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. python 爬虫之 正则的一些小例子

    什么是正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是 事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符”,这个“规则字符” 来表达对字符的一种过滤逻辑. 正则并不是pyth ...

  2. 【bzoj3028】 食物 生成函数+隔板法

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3028 这题的推导很妙啊,裸的推母函数的题. 我们首先构造出每种食物的母函数: 汉堡:$ ...

  3. Spring Security构建Rest服务-0700-SpringSecurity开发基于表单的认证

    自定义用户认证逻辑: 1,处理用户信息获取,2,用户校验,3密码的加密解密 新建:MyUserDetailService类,实现UserDetailsService接口. UserDetailsSer ...

  4. ElasticSearch Aggs的一些使用方法

    这段代码是关于多层聚合和嵌套域的聚合,来源:https://github.com/elasticsearch/elasticsearch/blob/master/src/test/java/org/e ...

  5. [webpack]path、publicPath、--content-base 理解

    附源码:http://files.cnblogs.com/files/chenshao/startPublic.rar 'use strict'; var webpack = require('web ...

  6. Android4.0 Launcher 源码分析3——WorkSpace结构(滑动)

    3.WorkSpace结构(滑动) 桌面的左右滑动功能主要是在PagedView类中实现的,而WorkSpace是PagedView类的子类,所以会继承PagedView中的方法.当我们的手指点击Wo ...

  7. 打包命令tar

    tar是linux下最常用的打包命令,使用tar打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的,也有.gz或.bz2结尾的. 1 常用参数 -c,--create # 新建打 ...

  8. Oracle 12c 操作 CDB PDB

    CREATE TRIGGER open_all_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'alter pluggable data ...

  9. java面试③Web部分

    2.2.1 讲一下http get和post请求的区别 get和post请求都是http的请求方式,用户通过不同的http请求方式完成对资源(url)的不同操作,具体点来讲get一般用于获取/查询资源 ...

  10. ruby冒泡算法删除店铺下的重复评论

    Shop.each do |shop| if !shop.comments.blank? n = shop.comments.length for i in 0..n-1 for j in i+1.. ...