1.javaScript中的运算符
运算符也叫操作符比如:typeof就是运算符,来获取一个值的类型,它会将该值的类型以字符串的形式返回
1.算术运算符(+、-、*、/、%)
任何值和NaN做运算,都是NaN 如果两个String相加,则产生拼串操作。与java中的字符串相加相同。js中的双引号必须在同一行,不能换行 任何的值和字符串做加法运算,都会先转换为字符串,再拼串 任何值进行-,/,*操作时,都会自动转换为Number
2.一元运算符
+ 正号
- 负号
对于非Number的值,会先转换为Number后,进行处理
语法:++/--变量名++/--留心:++/--在前 先运算,在操作、++/--在后 先操作,再运算
3.逻辑运算符
! 非
-如果对非布尔值进行运算,会将其转换为布尔值。
可以将任意数据类型取两次反,将其转换为布尔值。
&& 短路与
-非布尔值的情况:
对于非布尔值会先将其转换为布尔值,再运算,最后返回原值。
|| 短路或
4.关系运算符
对于非数值进行比较时,会将其转换为数字,再比较。
任何值与NaN做比较都是false。
注意:
如果负号两侧的值都是字符串时,不会将其转换为数字进行比较,而是转换成Unicode编码(十六进制)比较。
按位比较。
在比较两个字符串型的数字时,一定要转型。
// 大于小于
let result = 5 > 10;
let result = 5 < 10;
// 大于等于,小于等于
let result = 5 >= 10;//<=
// 非数字
// 对非数值进行比较,先转换为数字,再比较
let result = '10' > 2;
let result = 10 > 'hello' // 任何值和NaN都是false
// 如果两边都是字符串,不会将其转换成数字,而是分别比较字符的unicode
console.log('1' < '5');
console.log('22' < '5');
// 比较字符编码
console.log('a' < 'b');
// 0061. 0041
console.log('a' < 'A'); // false
// 比较字符编码时候,是一位一位进行比较,如果两位一样,则比较下一位。
console.log('abc' < 'b');
console.log('bbc' > 'b');
// 可以比较英文名字,中文不行。
// 值得注意的是:
// 比较俩个字符串型的数字时候,会出现错误:
console.log('1231231' < '3');
// 所以,一定要转型
console.log('12313' > +'3');
5.相等运算符
==
如果使用==来比较两个值时,如果值的类型不同,
则会自动进行类型转换,将其转换为相同的类型。
undefined衍生自null,所以两个值做相等判断时,会返回true。
NaN不和任何值相等,包括其本身。
-判断值是否是NaN,通过isNaN()函数来判断一个值是否是NaN。
!=
=== 全等
-用来判断两个值是否全等,和相等类似,不同的是如果两个值的类型不同,直接返回false。
!== 不全等
-用来判断两个值是否不全等,如果两个值的类型不同,直接返回true。
// == 与 === 与 !=
console.log( 1 == 1);
console.log( '1' == 1);
// == 自动类型转换,再比较
console.log( true == '1' );
// 字符串转成了数字
console.log(true == '1');
console.log(true == '2');
console.log( true == 'hello');
console.log( null == 0); // false null=>空,准确来说不为0
console.log(undefined == null); // undefined衍生自null
// NaN 不和任何值相等,包括其本身
console.log( NaN == 1 );
console.log( NaN == NaN );
console.log(isNaN(NaN));
// != 不相等,与==类似
// === 不进行类型转换,再比较,全等,其他和==类似
console.log(undefined === null); //fasle 相等但不全等
6.赋值运算符(=、+=、-=、*=、/=)
明确:在js中一个等号是赋值
举例:var 变量名 = 值 // 将 = 右边的数据 放到 左边的 变量中/仓库中
留心:下述语法 只能修改
接着:+=、-=、*=、/=
就是:仓库里面的数据 自己数据+新数据、自己数据-新数据、自己数据*新数据.....
代码:变量名 += 值
演变:变量名 = 变量名 + 值
代码:变量名 *= 值
演变:变量名 = 变量名 * 值
<script>
// var temp = 1;
// temp += 6; // temp = temp + 6
// console.log(temp) // 7
var temp = 2
temp*=5 // temp = temp * 5
console.log(temp) // 10
// var rs += 5 // 留心:报错因为rs没有定义
// 演变 var rs = rs + 5
// 因为 没有rs 所以报错
</script>
7.比较运算符(>、<、>=、<=、、!=、=、!==)
语法
明确:比较肯定有两个值,然后布尔值 成立-true,不成立-false
> 大于
< 小于
>= 大于等于(只有有一个成立 就返回true
<= 小于等于(只要有一个成立 就返回true
= 赋值
== 判断值是否相当
=== 全等(既判断值又判断类型 既要值相等、又要类型相等 成立 true 否则返回false
!= 不等 只要值不相等就成立 true
!== 不全等(有判断值有判断类型 只要有一个成立 就成立 true
2.分支
if 分支语句
if 语句有三种使用方法:单分支、双分支、多分支
1单分支:
<script>
if(条件){
满足条件时执行的代码
}
</script>
括号内的条件为true时 执行大括号里面的代码
小括号里面的条件若不是boolean类型时 会发生隐式装换转换为boolean类型
2双分支:
<script>
if(条件){
满足条件时执行的代码
} else {
不满足条件时执行的代码
}
</script>
3多分支:
<script>
if(条件1){
代码1
} else if(条件2) {
代码2
}else if(条件3) {
代码3
}else{
代码n
}
</script>
先判断条件1,若满足条件1就执行代码1,其他不执行
若不满足则向下判断条件2,满足条件2执行代码2,其他不执行
若依然不满足继续往下判断,依次类推
若以上条件都不满足,执行else里的代码n
可以写N个条件
4三元运算
语法
-
三元运算:顾名思义就是有三个操作组成(注:两个符号)
-
语法:操作1 ? 操作2 : 操作3
-
留心:操作1成立-操作2,操作1不成立-操作3
3.while循环
switch语句
需要括号里面的内容 和 值1 全等(===)
若没有全等的则执行 default 里面的代码
switch case语句一般用于等值判断,不适合于区间判断 switch case一般需要配合break关键字使用 没有break会造成case穿透
<script>
switch(数据){
case 值1:
代码1
break
case 值2:
代码2
break
default:
代码n
break
}
</script