概述
JavaScript运算符
1. 运算操作符
1.1 “+”
- 数学运算;
- 字符串连接;
注意:任何数据类型加字符串都等于字符串。
例1:
var a = "a" + "b";
document.write(a);
输出结果为“ab”。
var a = "a" + 1;
document.write(a);
输出结果为“a1”。
- 加法运算自左向右。
例2:
var a = "a" + 1 + 1;
document.write(a);
输出为“a11”。
var a = 1 + 2 + "a" + 1 + 3;
document.write(a);
输出为“3a13”。
var a = 1 + 2 + "a" + (1 + 3);
document.write(a);
输出为“3a4”。
1.2 " -(减号) ", " *(乘号) ", " /(除号) ", " %(求余) ", " =(赋值) ", “()(括号)”
特别地,"0/0"返回运算结果是NaN (Not a Number),“3/0"运算结果是Infinity,”-6/0"运算结果是-Infinity。
其中"=“优先级最低,”()"优先级最高
1.3 " ++(自加) ", " --(自减) ", " += ", " -= ", " *= ", " /= ", " %= "
++a表示先自加再执行语句,a++表示先执行语句再自加。
例3:
var a = 10;
var b = ++a - 1 + a++;
document.write(b + " " + a);
输出"21 12"。
小练习:
调换a和b的值,例如原本a=123, b=234
,现要求a=234, b=123
方法1
var a = 123;
var b = 234;
var c = a;
a=b;
b=c;
方法2
var a = 123;
var b = 234;
a = a + b;
b = a - b;
a = a - b;
2. 比较运算符
" > ", " < ", " == ", " >= ", " <= ", " != "
比较结果为boolean值
例4:
var a = 1 > 2;
document.write(a);
打印结果为“false”。
字符串的比较,是比较字符串的ASCII码值的大小。字符串比较的时候,字符串的大小是从最左边第一个字符开始比较,大者为大,小者为小,若相等,则继续比较后面的字符。长度不能直接决定大小,字符串的大小是由左边开始最前面的字符决定的。
注意,
NaN==NaN
是false,infinity==infinity
是true。
3. 逻辑运算符
3.1 " && ", " || ", " ! " 与、或、非
注意区分," & ", " | "是按位与或
3.1.1 逻辑与
先看第一个表达式转换为布尔值的结果,如果结果为真,那么接下来看第二个表达式转换为布尔值的结果,后面以此类推。
expr1 && expr2
: 若expr1能被转化为false,则返回expr1;否则返回expr2。(返回值都是某表达式的值)
例如:
var a = 1 && 2; //return 2
var b = 0 && 1; //return 0
var c = 1 && 2 + 2; //return 4
var d = 0 && 2 + 2; //return 0
var e = 1 && 2 && 3; //return 3
var f = 1 && false && 2; //return false
3.1.1.1 能被转换为false的值
- false
- null
- 0
- NaN
- 空字符串(“”)
- undefined
3.1.1.2 与运算符的应用:短路语句
data && fn(data)
: 先判断data布尔值是否为false,若为false则后面语句不执行,否则执行。
3.1.2 逻辑或
先看第一个表达式转换为布尔值的结果,如果结果为假,那么接下来看第二个表达式转换为布尔值的结果,后面以此类推。
expr1 || expr2
: 若expr1能被转化为true,则返回expr1;否则返回expr2。
例如:
var a = 4 || 3; //return 4
var b = 0 || 3; //return 3
var c = 0 || false; //return false
var d = 0 || false || 1; //return 1
3.1.3 逻辑非
如果操作数能够转换为true则返回false;否则返回true。
例如:
var a = !""; //return true
var a = !123; //return false
应用:!!
作用是将表达式的值转化为布尔值。
例题
(window.foo || (window.foo = 'bar'));
这题注意运算符的优先级问题,()
优先级较高,以此或运算符右边括号中的内容先执行,执行之后window.foo已被赋值。接下来执行逻辑或,左边为字符串’bar’,转化为true,后面不再执行。
最后
以上就是尊敬月亮为你收集整理的4.JavaScript学习笔记——JavaScript常用运算符JavaScript运算符的全部内容,希望文章能够帮你解决4.JavaScript学习笔记——JavaScript常用运算符JavaScript运算符所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复