操作符
运算符 operator
5 + 6
表达式 组成 操作数和操作符,会有一个结果
算术运算符
+ - * / %
一元运算符
一元运算符:只有一个操作数的运算符
5 + 6 两个操作数的运算符 二元运算符
++ 自身加1
– 自身减1
- 前置++
var num1 = 5; ++ num1; var num2 = 6; console.log(num1 + ++ num2);
- 后置++
var num1 = 5; num1 ++; var num2 = 6 console.log(num1 + num2 ++);
猜猜看
var a = 1; var b = ++a + ++a; console.log(b); var a = 1; var b = a++ + ++a; console.log(b); var a = 1; var b = a++ + a++; console.log(b); var a = 1; var b = ++a + a++; console.log(b);
- 总结
前置++:先加1,后参与运算
后置++:先参与运算,后加1
上面两个理解后,下面两个自通
前置-- :先减1,后参与运算
后置-- :先参与运算,后减1
逻辑运算符(布尔运算符)
&& 与 两个操作数同时为true,结果为true,否则都是false || 或 两个操作数有一个为true,结果为true,否则为false ! 非 取反
关系运算符(比较运算符)
< > >= <= == != === !==
==与===的区别:==只进行值得比较,===类型和值同时相等,则相等 var result = '55' == 55; // true var result = '55' === 55; // false 值相等,类型不相等 var result = 55 === 55; // true
赋值运算符
= += -= *= /= %=
例如: var num = 0; num += 5; //相当于 num = num + 5;
运算符的优先级
优先级从高到底 1. () 优先级最高 2. 一元运算符 ++ -- ! 3. 算数运算符 先* / % 后 + - 4. 关系运算符 > >= < <= 5. 相等运算符 == != === !== 6. 逻辑运算符 先&& 后|| 7. 赋值运算符
// 练习1: 4 >= 6 || '人' != '阿凡达' && !(12 * 2 == 144) && true // 练习2: var num = 10; 5 == num / 2 && (2 + 2 * num).toString() === '22'
表达式和语句
表达式
一个表达式可以产生一个值,有可能是运算、函数调用、有可能是字面量。表达式可以放在任何需要值的地方。
语句
语句可以理解为一个行为,循环语句和判断语句就是典型的语句。一个程序有很多个语句组成,一般情况下;分割一个一个的语句
代码示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavaScript操作符</title> <script> /* * * 操作符:一些符号-----用来计算 * * 算数运算符: + - * / % * 算数运算表达式:由算数运算符连接起来的表达式 * 一元运算符: 这个操作符只需要一个操作数就可以运算的符号 ++ -- * 二元运算符: 这个操作符需要两个操作数就可以运算, * 三元运算符: -----不讲,明天讲 * 复合运算符: += -= *= /= %= * 复合运算表达式:由复合运算符连接起来的表达式 * * var num=10; * num+=10;------>就是:num=num+10; * console.log(num);20 * * * 关系运算符: > < >= <= ==不严格的 ===严格的 !=不严格的不等 !==严格的不等 * 关系运算表达式:由关系运算符连接起来的表达式 * 关系运算表达式的结果是布尔类型 * 逻辑运算符: * &&---逻辑与--并且 * ||---逻辑或---或者 * !---逻辑非---取反--取非 * 逻辑运算表达式:由逻辑运算符连接起来的表达式 * 表达式1&&表达式2 * 如果有一个为false,整个的结果就是false * 表达式1||表达式2 * 如果有一个为true,整个的结果为true * !表达式1 * 表达式1的结果是true,整个结果为false * 表达式1的结果是false,整个结果为true * * 赋值运算符: = * * * * * */ var num1=10; var num2=20; console.log(num1==num2&&5>6); var num=20; console.log(num>10||5<0); var flag=false; console.log(!flag); var num=10; var sum=(num+10)*5; console.log(sum); var result = (4 >= 6 || '人' != '狗' && !(12 * 2 == 144) && true); console.log(result); var num = 10; var result2 =( 5 == num / 2 && (2 + 2 * num).toString() === '22'); console.log(result2); var num=20; var result=num/3;//num变量与3取余--->10/3的余数 console.log(parseInt(result)); var num=20; var result=num%3;//num变量与3取余--->10/3的余数 console.log(result); var num=10; var sum=(num+10)+10; var num = 20; num %= 5; // num=num-5; console.log(num); var str="5"; var num=5; console.log(str===num); console.log(5>10);//false console.log(5>=5);//true console.log(5>3);//true console.log(5==10);//false //字面量: 把一个值直接赋值给一个变量 //声明变量并初始化 var num=10; var flag=true; var str="哈哈哈"; var y=10; var n=y; </script> </head> <body> </body> </html> <!doctype html> <html lang="en"> <head> </head> <body> </body> </html>