JS学习笔记(7)表达式与运算符
来源:互联网 发布:心中心网络道场 编辑:程序博客网 时间:2024/06/16 07:46
表达式与运算符
表达式
表达式为 JavaScript 的短语可执行并生成值。
1.7 // 字面量"1.7"var a = 1;var b = '2';var c = (1.7 + a) * '3' - b
运算符
算数运算符 (+ - * / %)
关系运算符 (> < == != >= <= === !==)
逻辑运算符 (! && ||)
位运算符 (& | ^ ~ << >>)
负值运算符 (=)
条件运算符 (?:)
逗号运算符 (,)
对象运算符 (new delete . [] instanceof)
=== 全等符号
全等运算符用于盘对左右两边的对象或值是否类型相同且值相等。
伪代码拆解
function totalEqual(a, b) { if (a 和 b 类型相同) { if (a 和 b 是引用类型) { if (a 和 b 是同一引用) return true; else return false; } else { // 值类型 if (a 和 b 值相等) return true; else return false; } } else { return false; }}
例子
var a = "123";var b = "123";var c = "4";var aObj = new String("123");var bObj = new String("123");var cObj = aObj;a === aObj // falseaObj === bObj // falseaObj === cObj // truea === b // truea === c // false
==
== 用于判断操作符两边的对象或值是否相等。
伪代码拆解
function equal(a, b) { if (a 和 b 类型相同) { return a === b; } else { // 类型不同 return Number(a) === Number(b); // 优先转换数值类型 }}
例子
"99" == 99; // truenew String("99") == 99; // truetrue == 1; // truefalse == 0; // true'\n\n\n' == // true
例外规则
null == undefined 结果为真 true
在有 null/undefined 参与的 == 运算是不进行隐式转换。
0 == null; // falsenull == false; // false"undefined" == undefined; // false
! 取反
!x 用于表达 x 表达式的运行结果转换成布尔值(Boolean)之后取反的结果。!!x 则表示取 x 表达式的运行结果的布尔值。
var obj = {};var a = !obj // false;var a = !!obj // true;
&& 逻辑与
x && y 如果 x 表达式的运行交过转换成 Boolean 值为 false 则不运行表达式 y 而直接返回 x 表达式的运行结果。相反,如果 x 表达式的运行交过转换成 Boolean 值为 true 则运行表达式 y 并返回 y 表达式的运行结果。
伪代码拆解
var ret = null;if (!!(ret = x)) { return y;} else { return ret;}
例子
var a = 0 && (function(){return 1 + 1;})(); // 0var b = 1 && (function(){return 1 + 1;})(); // 2
|| 逻辑或
x || y 如果 x 表达式的运行结果转换为 Boolean 值为 true,则不运行 表达式 y 而直接返回表达式 x 的运算结果。(与 && 方式相反)
伪代码拆解
var ret = null;if (!!(ret = x)) { return ret;} else { return y;}
例子
var a = 0 || (function(){return 1 + 1;})(); // 2var b = 1 || (function(){return 1 + 1;})(); // 1
元算符优先级(Operator Precedence)
- / 高于 &&
- / 高于 + -
&& 高于 ?:
() 内优先级高于之外
NOTE:和数学上的算术优先级类似,同级从左到右计算。如有疑问加上 () 既可解决优先级问题。
阅读全文
0 0
- JS学习笔记(7)表达式与运算符
- 学习笔记3 运算符与表达式
- C学习笔记(七)运算符与表达式
- 【js学习笔记-025】-- 表达式和运算符
- 《JS权威指南》学习笔记(三):表达式和运算符
- 【菜鸟C++学习笔记】7.运算符与表达式
- J2SE学习笔记之运算符、表达式与语句
- Python 学习笔记之运算符与表达式
- 【C++学习笔记】06_运算符与表达式
- python学习旅程笔记2-运算符与表达式
- JavaScript学习笔记——表达式与运算符
- C语言学习笔记(三)--运算符与表达式(上)
- C语言学习笔记(四)--运算符与表达式(下)
- (三十)C语言学习笔记(一)——类型、运算符与表达式
- 《C程序设计语言》学习笔记(二)——类型、运算符与表达式
- javascript权威指南学习笔记(2)--表达式与运算符
- js的表达式,运算符,与优先级
- 3.JS中运算符与表达式
- 大数运算
- 接口示例
- cf Summer sell-off
- postfix空壳邮件服务
- (轴对称二叉树)Binary Tree
- JS学习笔记(7)表达式与运算符
- Caffe(1):虚拟机上的ubuntu16.04配置caffe(CPU版)
- UVA 12633 Super Rooks on Chessboard
- Python 函数
- PCI地址
- TURN协议(RFC5766详解)
- 互联网降级论
- nyoj301递推求值
- java内部类