cithegod 2019-06-28
JavaScript提供了一组用于操作数据值的运算符,又可以称之为操作符,这些运算符可以按照作用的不同,或者操作变量数量的不同进行分类。
*如果运算数中的一个或者两个字符串类型,那么JavaScript会自动转换为数字值,再进行计算。 如果运算数中的一个或两个是字符串类型,但是其中的字符串不是数字,JavaScript会自动转换数字值 ,得到NaN结果 任何一个运算数是NaN,结果都是NaN。 布尔值false和true会转换为0和1进行计算*
var num = 50 ; var str1 = '范甘迪'; var str2 = '200'; var boo = true; //加法num 数字加法就是数字相加 var a1 = num+200 console.log(a1) //如果是字符串进行相加的话,结果就是将两个字符串相连接 var a2 = str1+200 console.log(a2) //如果布尔类型进行加法计算,先将布尔值转换为数字值,再进行加法计算 var a3 = boo+200 console.log(a3)
//如果字符串进行减法计算的话 那么先将字符串类型转换为数字值,再进行减法计算 var a4 =str1-50 console.log(a4) //减法,先将其他类型转换为number类型,再进行计算 var a4 = num -100 console.log(a4) //如果布尔类型进行减法计算,那么先将布尔类型转换为数字值,再进行减法计算 var a5 = boo-50 console.log(a5) //自增运算符是来操作当时变量的值;每一次自增+1 /*有两种自增方案 1前置自增运算符++变量名 ,先增加后赋值. 2后置自增运算符-变量名++,先赋值再自增 * */ var num = 10; console.log(num);//10 var a1 = ++num; console.log(a1);//11 console.log(num);//11 var a1 = num++; console.log(a1);//11 console.log(num);//12
* 运算符的优先级别 * 运算法则是先运算优先级别较高的运算符 * 如果运算的级别相同的话则从左至右计算 `console.log(1+2-3*4) //-9 乘法优先级别更高所以先运算乘法再从左到右运算 console.log(5+50%3)//7 余数的优先级高 console.log(2*4%2)//余数与乘法优先级一样高所以自左到右计算 var num = 2; console.log(5*++num)//前置自增优先级更高
//大于小于比较运算符 大小比较运算符的结果类型为布尔类型 /* * 1num类型*/ console.log(1>2)//false因为1小于2 所以结果为false假 console.log(1<2)//true 1小于2 是正缺的所以结果为true console.log(1<=2)//true //booean类型比较运算;先将Boolean类型转换为number类型 console.log(true>false)//true true=1 false=0 //string类型 将string转换为Unicode码然后进行比较 //若比较的是英文单词那么 从左至右字母依次比较Unicode码进行比较 console.log('a'<'b')//true console.log('adc'>'asc')//false console.log('和'<'打')//true
相等与不等运算符
/*相等与不相等运算符 * 两个== 表示相等; 不等则是!=表示*/ console.log(1==2)//false1不等于2所以结果为false console.log(1!=2)//true 1不等于2 缩减结果为true //boolea类型 console.log(true==true)//true console.log(false!=true)//true console.log(false==3)//false //string 类型 console.log('s'=='s' )//true console.log('d'!='我')//true console.log('213'==213)//true只比较其数值不比较类型
全等与不全等运算符;
//全等不全等,不但不叫值还比较类型 console.log(1 === 10);// true console.log('10' === 10);// false console.log('10' === '10');// true
//isNaN()函数 它的作用就是判断当前的值是否为NaN
//结果为true结果是NaN
//结果为false是结果不是NaN 因为他不是一个数值
console.log(isNaN(1))// 因为他不是NaN所以结果为false
console.log(isNaN('大话西游'))//因为他转换为number类型为NaN所以结果为true
//isfinit()函数表示判断当前值是否为无穷大
//结果为false时表示当前的值时无限大.
//当结果为true时 表示当前数值为有限大
var a = 100/0;
console.log(a)//infinety 表示输出的结果为无限大
console.log(isFinite(a))//false
逻辑与运算符
console.log(true && true);// true console.log(true && false);// false console.log(false && true);// false console.log(false && false);// false /* 将逻辑与运算符的两个操作数,转换为布尔类型 * 当左边的操作数为true时,结果为右边操作数的值 * 当左边的操作数为false时,结果为左边操作数的值 */ `console.log(100 && 1);// 1 console.log(1 && 0);// 0 console.log(0 && 1);// 0 console.log(0 && 0);// 0 console.log(true && true); console.log(true && false); console.log(false && true); console.log(false && false); console.log('卧龙学苑' && '卧龙学苑');// 卧龙学苑 console.log('优秀' && '');// '' console.log('' && '痴迷');// '' console.log('' && '');// '' console.log('答案' && 1);// 1 console.log(false && 0);// 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);// 100 console.log(1 || 0);// 1 console.log(0 || 1);// 1 console.log(0 || 0);// 0 console.log(true || true); console.log(true || false); console.log(false || true); console.log(false || false); console.log('卧龙学苑' || '卧龙学苑');// 卧龙学苑 console.log('卧龙学苑' || '');// 卧龙学苑 console.log('' || '卧龙学苑');// 卧龙学苑 console.log('' || '');// '' 赋值的扩展运算符 var b = 10, c = 20; var a = b + c; console.log(a);// 30 // b = b + c; // 等价写法 - 赋值扩展运算符的性能要比赋值运算符更高 b += c; console.log(b);// 30 条件运算符: var result = 8 > 9 ? '对' : '错'; 1. console.log(result); var score = 95; score > 90 ? console.log('优秀') : console.log('及格'); /*当条件运算符条件为true时输出的结果为冒号前面的值 条件为false时输出结果就是冒号后面的值*/
** var score = 55; /*嵌套条件运算符 * 优点 - 扩展了条件运算符本身的计算能力 * 缺点 * 可读性比较差 * 性能随着嵌套的层级越多越差 * 建议 - 最多不要超过三层嵌套*/ var result = score > 90 ? '优秀' : (score > 80 ? '良好' : (score > 60 ? '及格' : '不及格')); console.log(result);**