Ping 2019-06-28
——运算符一共分为六种;
1.算数运算符
2.比较运算符
3.逻辑运算符
4.赋值运算符
5.字符串联接运算符
6.条件运算符
——运算符的概念;
JavaScript提供的一组用于操作数据值的运算符(操作符)。这些运算符可以按照作用的不同或者操作变量数量的不同进行分类。
——运算符的优先级别;
JavaScript语言中的运算符,如果在复杂的表达方式中应用,首先我们要了解运算符的优先级别。也就是说先计算哪个,再计算哪个的道理。就跟数学中的加减乘除相似。如果不知道运算符的优先级别,那么很可能导致最后的计算结果错误。
我们没有必要去记运算符的优先级别,只要记住关键的小括号级别是最高的就可以。实际开发中只要使用小括号包裹的运算符,就先去计算包裹的运算符;
运算符具有计算的优先级别
1.先计算优先级别高的运算符 2.运算符的级别相同,从左至右的计算 运算符中优先级别最高的是“()” 优先计算的表达式利用"()"将其包裹起来
console.log(100 + 200 - 150 * 3); console.log(100 + 200 % 3); console.log(2 * 200 % 3); var num = 10; console.log(5 + ++num);
算数运算符的基本操作比较简单
-如果运算数中的一个或者两个是字符串类型,那么JavaScript会自动转换成数字值,然后再进行计算。
如果运算数中的一个或两个是字符串类型,但是其中的字符不是数字时,JavaScript会自动转换成数字值进行计算,得到的结果是NaN.(任何一个运算数是NaN,结果都会是NaN)。
布尔的false和true值都会默认转换为0和1进行计算。
var num = 100; var str1 = '运算符'; var str2 = '200'; var boo = true; 加法 var result1 = num + 300; console.log(result1);// 400 如果字符串进行加法计算 -> 字符串连接运算符(拼串) var result2 = str1 + 300; console.log(result2); console.log(typeof result2);// string var result3 = str2 + 300; console.log(result3);// 200300 如果布尔类型进行加法计算 -> 将布尔类型转换为数字值,再进行加法计算 var result4 = boo + 300; console.log(result4);// 301 减法 - 先将其他类型转换为number类型,再进行计算 var result5 = num - 100; console.log(result5);// 0 如果字符串进行减法计算的话 -> 将字符串类型转换为数字值,再进行减法计算 var result6 = str1 - 100; console.log(result6);// NaN var result7 = str2 - 100; console.log(result7);// 100 如果布尔类型进行减法计算 -> 将布尔类型转换为数字值,再进行减法计算 var result8 = boo - 100; console.log(result8);// -99
2.比较运算符
JavaScript语言中的比较运算符,主要是用来比较两个操作数的大小,相等。
全等于不全等,不仅要比较直,还要比较类型。
1.number类型 console.log(10 > 11);// false是错误的,10不可能大于11 console.log(11 > 10);// true是正确的,11本来就大于10 console.log(10 >= 10);// true是正确的,10本身就大于等于10 2.boolean类型 - 将boolean类型转换为number类型 console.log(true > false);// true是正确的,true表示1、false表示0 console.log(true > 0);// true是正确的,true表示1,所以大于0 3.string类型 - a.英文;b.中文 英文或中文 -> 将文本转换成 Unicode 码 - 对应具有数字值 英文单词 -> 从左至右的依次比较字母 Unicode 码的大小 console.log('a' < 'b');// true console.log('a' > 'A');// true console.log('abc' > 'cba');// false console.log('abc' > 'acd');// false console.log('我' > '你');// true
相等与不等比较
1.number类型
console.log(10 == 10);// true
console.log(10 == 11);// false
2.boolean类型
console.log(true == true);// true
console.log(true == false);// false
console.log(true == 1);// true
3.string类型
console.log('a' == 'a');// true
console.log('a' == 'b');// false
(只比较值,而不比较类型)
console.log('100' == 100);// true
相等比较运算符
与赋值运算符的区别
不等比较运算符
isNaN()函数
isNaN函数用于判断其参数是否为NaN。
一般多用于检测使用类型转换函数进行数据类型转换后的结果是否为合法的数字值。
(NaN与任何值包括自身进行比较,最后结果都是false)
作用 - 判断当前值是否为 NaN true - 表示当前值是 NaN(不是一个数字值) false - 表示当前值不是 NaN(不是一个数字值) console.log(isNaN(100));// false console.log(isNaN(Number('wolongxueyuan')));// true var result = 100/0; console.log(result);// Infinity isFinite()函数 作用 - 判断当前值是否为无穷大 false - 表示当前值是无穷大 true - 表示当前值是有限数值 console.log(isFinite(result));// false
逻辑运算符
逻辑运算符是用于布尔类型的计算。
把逻辑与运算的两个操作数,转换为布尔类型。
逻辑或运算符
console.log(true || true);// true console.log(true || false);// true console.log(false || true);// true console.log(false || false);// false 将逻辑与运算符的两个操作数,转换为布尔类型 -当左边的操作数为true时,结果为左边操作数的值 - 当左边的操作数为false时,结果为右边操作数的值 console.log(100 || 1); console.log(1 || 0); console.log(0 || 1); console.log(0 || 0); console.log(true || true); console.log(true || false); console.log(false || true); console.log(false || false);
逻辑短路
逻辑与运算符
- 逻辑与运算符前面是false,结果都将返回逻辑与运算符前面的值 - 逻辑与运算符前面是true,结果都将回逻辑与运算符后面的值
逻辑或与运算符
- 逻辑或运算符前面是false,结果都将返回逻辑或运算符后面的值 - 逻辑或运算符前面是true,结果都将返回逻辑或运算符前面的值
4.条件运算符
var score = 55; 嵌套条件运算符 优点 - 扩展了条件运算符本身的计算能力 缺点 -可读性比较差 -性能随着嵌套的层级越多越差 建议 - 最多不要超过三层嵌套 var result = score > 90 ? '优秀' : (score > 80 ? '良好' : (score > 60 ? '及格' : '不及格')); console.log(result);