一、运算符
运算符包括算术运算符、比较运算符、逻辑运算符、赋值运算符
1.算术运算符: +,-,*,/, %, ++, --
(1) +,-,*,/,%和python中的是一样的
(2)任何数据和字符串相加,结果都是字符串拼接的操作,即:两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串,
var str1 = 'aaa'+[1,2,3,4];
console.log(str1);
输出:aaa1,2,3,4
(3)两个数组相加,并不是数组元素的拼接。而是将数组转换成字符串,然后拼接成一个新的字符串
var arr1 = [1,2,3] + [4,5,6];
console.log([1,2,3])
console.log(arr1);
(4)*操作只能作用于两个数字类型
var str2 = 'abc'*2;
console.log(str2);
输出:NaN
(5) ++:自加1操作,如num1 += 1, 等价于num1 = num1+1;同理:- -:自减1操作
var num1 = 10;
var num11 = 10;
num1++; //相当于: num1 += 1, num1 = num1+1
++num11
console.log(num1, num11);
输出:
11
11
var num2 = 10;
num2--;
console.log(num2);
输出9
【坑】这里注意赋值的先后性,看一下这行代码的结果
var num3 = 10;
var num33 = 10
var num4 = num3++; // var num4 = num3; num3 += 1;
var num5 = ++num33; // num33 += 1; var num5 = num33;
console.log(num4, num5);
第三行的num4=num3
这里输出为
10
11
2.比较运算符 >, <, >=, <=, == , !=, ===, !==
这里强调===和==的区别
==是只要两个数据的值相等,结果就是true,否则是false
===是只有两个数据的值相等,并且数据类型也相等的时候,结果才是true,否则是false
console.log(5==5) //true
console.log(5=='5') //true
console.log(5===5) //true
console.log(5==='5') //false
console.log(5!=5) //false
console.log(5!='5') //false
console.log(5!==5) //false
console.log(5!=='5') //true
注意:比较大小的时候,一般数字就和数字进行比较;字符串和字符串进行比较
字符串和数字之间比较大小,会把字符串转换成数字
3.逻辑运算符:&&(与and),||(或or),!(非not)
console.log(true && true,true && false,false && false); //true false false
console.log(true || true,true || false,false || false); //true, true, false
console.log(!true, !false); //false, true
4.赋值运算符 =, +=, -=, *=, /=, %=
注意:赋值符号的左边是变量
二.分支结构
javascript的分支语句除了if语句还有switch分支语句,下面我们一一解读
1.if语句
首先我们先回忆一下python中的if语句的结构
python:
if 条件:
语句块1
elif 条件:
语句块2
else:
语句块3
javascrip中的if语句:如果条件为True就执行执行语句块
if(条件语句){
执行语句;
}
if(条件语句){
}else{
}
if形式
var age = 20; if (age > 18) { console.log('已成年'); }
if.....else....形式
ar sex = 'girl';
if (sex == 'girl') {
console.log('女生');
}else{
console.log('男生');
}
if..else if...else if...else形式
var grade = 70;
if (grade >=80) {
console.log('优秀');
}else if(grade>=60){
console.log('中等');
}else{
console.log('不及格');
}
2.switch语句
switch的意思是转换,切换,用switch后的表达式的值去和case语句后的每一个表达式的做判断,判断是否相等。如果那个case后的表达式的值和switch后表达式的值相等,就将那个case作为入口,执行后面的所有的执行语句。