算数运算符
var str1 = '化物语'
var str2 = '100'
var boo = true
//加法运算
var result1 = num + 200
console.log(result1)//300
//字符串进行加法运算——>字符串连接
var result2 = str1+200
console.log(result2)//化物语200
console.log(typeof result2)//string
var result3 = str2+200
console.log(result3)//100200
console.log(typeof result3)//string
/*布尔类型加法运算——>将布尔类型转化为数字值,ture=1 false=0 在进行计算*/
var result4 = boo+200
console.log(result4)//201
console.log(typeof result4)//number
//减法运算
var result5 = num-100
console.log(result5)//0
/*字符串减法运算——>先装化为数字值*/
var result6 = str1-100
console.log(result6)//NaN
var result7 = str2-100
console.log(result7)//0
//布尔类型减法运算——>先转化为数字值在计算
var result8 = boo-100
console.log(result8)//-99
/*除法:0如果作为除数——>无穷大*/
/*除法与乘法与加减法一致*/
求余运算符
用于计算两个运算数整除后的余数
//余数的结果是正是负,与除数正负无关,只与被除数正负有关
console.log(8 % 3); //2
console.log(8 % -3);//2
console.log(-8 % 3);//-2
console.log(-8 % -3);//-2
/*与减法一样,非数字字符串运算为NaN*/
console.log('化物语' % 3);//NaN
自增运算符、自建运算符
自增运算符用于整数值逐渐+1/自减运算符-1
var num = 100
console.log(num)
/*前置自增运算符
*++变量名
*先自增,再赋值*/
var result1 = ++num
console.log(result1)//101
console.log(num)//101
/*后置自增运算符
* 变量名++
* 先赋值,在自增*/
var result2 = num++
console.log(result2)//100
console.log(num)//101
比较运算符
JavaScript中的比较运算符主要比较两个操作数是否相等,同等,大小等情况
大于与小于比较运算符
/*number类型*/
console.log(3 > 2);//true
console.log(3 < 2);//false
console.log(3 >= 3);//true
/*boolean类型,会将boolean转化为number再比较*/
console.log(true>false);//true
console.log(true<false);//false
/*string类型
* 英文或中文 -> 将文本转换成 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
相等与不等比较运算符
/*number类型*/
console.log( 3 == 3 );//true
console.log( 3 != 3 );//false
console.log( 3 == 2 );//false
console.log( 3 != 2 );//true
/*boolean类型*/
console.log(true == true);// true
console.log(true == false);// false
console.log(true == 1);// true
/*string类型*/
console.log('a' == 'a');// true
console.log('a' == 'b');// false
/*只比较值而不比较类型*/
console.log('100' == 100);// true
/*由于null和undefined都为空,所以相等*/
console.log(null ==undefined)//true
全等与不全等比较运算符
// 全等与不全等 - 不仅比较值,还比较类型
console.log(10 === 10);// true
console.log('10' === 10);// false
/*相等与不相等-不比较类型*/
console.log('10' == 10);// true
isNaN()函数
作用:判断当前值是否为NaN
- true - 表示当前值是 NaN(不是一个数字值)
- false - 表示当前值不是 NaN(不是一个数字值)
console.log(isNaN(100));// false
console.log(isNaN(Number('化物语')));// true
inFinite()函数
作用:判断当前值是否为无穷大
- false - 表示当前值是无穷大
- true - 表示当前值是有限数值
var result = 100/0;
console.log(result);// Infinity
console.log(isFinite(result));// false
逻辑运算符
JavaScript中的逻辑运算符,基本用法是用于布尔类型的计算
/*逻辑与运算符*/
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);// 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)//false
/*
*如果逻辑状态为true,则通过逻辑非运算符改为false
*/
console.log(!1)//false
赋值扩展运算符
var a = 2 , b = 3 ;
var c = a + b;
console.log(c);//5
/*var a = a + b;//重复赋值
console.log(a);//5*/
/*
* a += b 等同于 a = a + b
*/
a += b;
console.log(a);//5
条件运算符
/*
?前为表达式,先判断表达式真假
?后为两个给定指令,用:隔开
根据表达式判断结果执行指令
*/
var result = 3>2 ? '对':'错'
console.log(result)//对
var score = 95;
score > 90 ? console.log('优秀') : console.log('及格');
条件运算符嵌套
var score = 55;
/*
嵌套条件运算符
* 优点 - 扩展了条件运算符本身的计算能力
* 缺点
* 可读性比较差
* 性能随着嵌套的层级越多越差
* 建议 - 最多不要超过三层嵌套
*/
var result = score > 90 ? '优秀' : (score > 80 ? '良好' : (score > 60 ? '及格' : '不及格'));
console.log(result);