目录
逻辑运算符:
非“!”对布尔值取反操作,利用两次取反结果不变的特点,可以将一个其他数据类型转换为布尔类型
var a=”hello”;
a=!!a; //a的值为true,类型为Boolean
短路与“&&”,只有两个值全为true结果才为true,如果第一个值为false,则不会看第二个值
当对两个非布尔值进行运算时,返回值的结果为判断结束位置的值,第一个值为true,则返回后面的值;第一个值为false,则返回前面的值
短路或“||”,只有两个值全为false结果才为false,如果第一个值为true,则不会看第二个值
当对两个非布尔值进行运算时,第一个值为false,则返回后面的值;第一个值为true,则返回前面的值
赋值运算符:
=,将右侧的值赋给左侧
+=,a+=5等价于a=a+5
-=,a-=5等价于a=a-5
*=,a*=5等价于a=a*5
/=,a/=5等价于a=a/5
%=,a%=5等价于a=a%5
关系运算符:
大于>,小于<,大于等于>=,小于等于<=,关系成立则返回true,不成立返回false
对于非数值情况,先将其转换为数值再进行比较,任何值与NaN比较结果都返回false
如果符号两侧的值都为字符串时,会分别比较字符串中字符的Unicode编码,比较时是一位一位进行比较,如果两位一样则比较下一位,可以借此来对英文进行排序
如果比较两个字符串型的数字,要先进行类型转换
输出Unicode编码表中字符:
在字符串中使用转义字符:\u四位编码
在网页中使用:&#编码; 注意:这里需要将四位编码转换为十进制
相等运算符==:
符号两侧值相同返回true,否则返回false。当两个值类型不同,将会自动转换为相同类型后再比较
undefined衍生自null,所以这两个值相判断会返回true,NaN不和任何值相等,包括它自身
可以通过isNaN()函数来判断一个值是否是NaN,如果该值是NaN则返回true,否则返回false
全等运算符===,不会进行自动类型转换,如果两侧值类型不同则直接返回false
不等运算符!=:
符号两侧值不同返回true,否则返回false。与==相同,两个值类型不同,将会自动转换为相同类型后再比较
不全等!==,不会进行自动类型转换,如果两侧值类型不同则直接返回true
条件运算符(三元运算符?:):
条件表达式?语句一:语句二,执行时,先对条件表达式求值,如果值为true,执行语句一并返回执行结果,如果值为false,执行语句二并返回执行结果。如果条件表达式的求值结果是一个非布尔值,会将其转换为布尔值再运算
var a=10;
var b=20;
a>b?alert(“a大”):alert(“b大”); //输出结果:b大
获取最大值
var a=30;
var b=40;
var c=50;
var max=a>b?a:b; //获取a b中的最大值
max=max>c?max:c; //获取a b c中的最大值
//var max=a>b?(a>c?a:c):(b>c?b:c);成立但不方便阅读
运算符的优先级:
写式子时避免出错最好使用括号
代码块:
在JS中可以使用{}为语句分组,同一个{}中的语句为一组,也称为一个代码块,它们要么都执行,要么都不执行,JS中的代码块只具有分组的作用,{}内的内容在外部可见
prompt()函数可以弹出一个带有用户可输入的文本框的提示框,该函数需要一个字符串作为参数,该字符串将会作为提示框的提示文字,用户输入的内容将会作为函数的返回值,可以定义一个变量用于接收该内容
var a=prompt(“请输入:”);
流程控制语句:
1.条件判断语句
if(条件表达式){
语句
}
2.条件分支语句
if(条件表达式){
语句
}else{
语句
}
————————————
if(条件表达式){
语句
}else if(条件表达式){
语句
}else{
语句
}
3.循环语句
(作者观看的学习视频:B站尚硅谷)