赋值运算符
=:赋值运算符,将右值付给左值
赋值表达式是有值的,它的值就是右值的值
+= -= *= /= %= 复合的赋值运算符
自增自减运算
++,--
含义:对自身变量,自加1或减1
前加加,前减减:先计算数值,再使用
后加加,后减减:先使用,再计算(过了分号,该条语句结束后计算)
关系运算符
> >= < <= == != ===
通过关系运算符连接起来的表达式, 结果一定是一个布尔值。
console.log(1 > 2)
var a = 5
console.log(3 > a - 1)
console.log(2 >= 2)
console.log(10 < 11)
console.log(11 <= 11)
==:逻辑等,判断两个值是否相同
var a = 123
var b = 123
console.log(a == b)
console.log(a == 666)
!=:逻辑不等,不等为真,相等为false
console.log(a != b)
console.log(a != 666)
===:严格逻辑等,必须数值和类型都一致,不能数据转换
console.log(a === 123)
console.log(1 == true)
console.log(1 === true)
面试题?
=,==,===的异同?
1.=赋值运算符,将右值赋值给左值,所有和=连接的复合赋值运算符优先级都是最低的
赋值表达式的值就是右值的值
2.==是逻辑等,判断左值和右值是否相同,可以支持数据类型转换
3.===严格逻辑等,不支持数据类型转换,必须数值和类型都一致才为true
逻辑运算符
&&:完成一件事有N个步骤,每个步骤都得实现,整件事才能完成,各个步骤间的关系称为与.
||:完成一件事有N种方法,每个方法都能完成该件事,所有方法间的关系称为或.
!:某个条件的对立面 !男
通过逻辑运算符连接的表达式的结果也一定是布尔值
console.log(123 > 5 && 2 > 3);
console.log(true && 2 > 1 && 5 > 2);
console.log(true || false);
console.log(false || false);
console.log(1 > 2 || 1 < 3 && 2 > 1);
console.log(true && !false);
字符串和数字之间的转换
隐式转换
a.当字符串和数字进行运算时,凡是通过加号连接的,结果全都转为字符串
效果等价于字符串拼接
console.log(typeof(1 + "2"));
console.log(1 + "hello");
console.log("5+5=" + 5 + 5);
console.log(5 + 5 + "=5+5");
b.除了加号以外的运算符,-,*,/,%等等,计算的结果全都是为数字
console.log("10" - 5 + 10);
注意事项:
1.两个数值字符串做除了+以外的运算,结果也是数字
console.log("10" * "10");
2.如果遇到了非数字字符串,做+以外的运算,结果为NaN,NaN也是数字类型
console.log("abc" - 10);
显式转换
a.字符串转数字
parseInt(字符串||有小数点的数字):将内容转换成没有小数点的数字
var str = "210";
console.log(parseInt(str) + 10);
console.log(str + 5);
console.log(parseInt(123.456));
parseFloat(字符串):将内容转换为有小数点的数字
console.log(parseFloat("123.456"));
Number(有效数字的字符串||没有小数点的字符串):转换为数字
console.log(Number("666") + 1);
console.log(Number("666.666") + 1);
b.数字转字符串
数字对象.toString():返回该数字的字符串形式
var a = 999;
var str = a.toString();
console.log(str, a);
实际工作中的使用
字符串转数字
console.log("123" / 1 + 100);
数字转字符串
console.log(123 + "");
if语句
程序在设计时的结构有三种:
1.自上而下
2.选择结构
根据条件的真假,进行选择执行某部分代码块
if
switch
三目运算
3.循环
if(条件表达式)
语句;
注意事项:
1.条件表达式无论多么复杂,结果一定是一个布尔值
2.条件表达式只能修饰后面的一条语句
3.如果条件需要修饰一条以上的语句,则用{}括起来,
被左右{}扩区来的语句称为复合语句,代表一条语句
无论if条件修饰几条语句,建议都必须添加{}
a.
if (true)
console.log("heihei"
var a = 1
if (a < 0) {
a++;
console.log(a);
}
b.
if (条件表达式) {
语句;
} else {
语句;
}
var a = 5;
if (a > 10) {
console.log("heihei");
} else {
console.log("嘤嘤嘤");
}
c.
if(条件1){
语句1;
}else if(条件2){
语句2
}...
else if(条件n){
语句n
}else{
}
注意事项:if...else if所有条件都是互斥的,当某个条件成立时,后面的代码将都不再执行