一, 运算符的详解
1, 算术运算符
描述:++(自增运算符),--(自减运算符)
语法:++num,num++,--num,num--
功能: 对变量本身进行加 1 或减 1
例子:
- var num = 10;
- num++; // 相当于 num = num+1;
- console.log(num);
- num--; // 相当于 num = num-1;
- console.log(num);
注意:
(1) 对于自增自减运算符, 如果出现在运算子的前面, 则先将自己自增或自减, 然后再执行当前语句.
(2) 对于自增自减运算符, 如果出现在运算子的后面, 则先执行当前语句, 执行完毕再自己自增自减.
例子:
- var num =10;
- console.log(++num); // 先计算本身, 再参与语句执行
- console.log(num++); // 先参与语句执行, 再计算本身
- console.log(num);
2, 赋值运算符
描述:+=,-=,*=,/=,%=
语法: num+=6;
解释: 表示累加,[num+=6;] 相当于 [num = num+6;]
例子:
- var num = 10;
- num+=1; // num = num+1; num++;
- console.log(num);
3, 比较运算符
描述: 比较运算符能够根据规则比较两个变量的值, 返回一个布尔值, 用来表示是否满足规则.
类型:==,===,!==,!===,>,>=,<,<=
例子:
- var num1 = 15;
- var num2 = 30;
- var num3 = '15';
- console.log(num1==num3);
思考: 数字能够比较大小, 那么字符串能不能比较呢? 如果能, 怎么比较呢?
[JS 中字符串间的比较是按照位次优先, 比较各字符的 ASCII 码大小, 包括数字字符串之间的比较.]
例子: 1.console.log("1"<"3"); // true2.console.log('5'<'10'); // false3.console.log("123"<"123"); // false4.console.log("abc"<"aad"); // false 补 var item1 = undefined;
- var item2 = null;
- console.log(item1==item2);
- console.log(item1===item2); // false
- console.log(undefined===undefined);
- console.log(null===null);
4, 布尔运算符
描述:&&(与),||(或),!(非)
语法:
(1)&& 与运算符:(表达式 1)&&(表达式 2);
运算符两端表达式结果均为 true 的时候, 整个表达式为 true, 有一个为 false, 则整个结果为 false
- var num1 = 15;
- var num2 = 30;
- var result = (num1>5)&&(num2<50);
- console.log(result);
(2)|| 或运算符:(表达式 1)||(表达式 2);
运算符两端表达式任一结果为 true 的时候, 整个表达式为 true, 两者皆为 false, 则整个结果为 false
- var num1 = 15;
- var num2 = 30;
- var result = (num1>5)||(num2>50);
- console.log(result);
(3)! 非运算符:!(表达式)
表达式结果为 true, 则整个表达式结果为 false;
表达式结果为 false, 则整个表达式结果为 true;
- var num1 = 15;
- var result = !(num1>5);
- console.log(result);
5, 运算符优先级 (截取常用部分)
初等单目一二级 //() 小括号是初等运算符, 因为优先级最高
乘除取余加减移
关系等于不等于
与或赋值终对齐
注:
(1) 运算符的优先级按照出现的顺序排列, 谁先出现谁优先级高.
(2) 单目: 一个运算数 i++, i--,!a(3) 双目: 两个运算数 a+b a-b a*b
(4) 三目: 三个运算数 bc=a?b:c; (if(a) bc =b;else bc =c;)
二, 流程控制
1,if 语句
描述: 表示判断表达式是否成立, 如果成立执行大括号中的语句. 如果不成立直接跳过.
语法: if(表达式){ 语句; }
例子:
- var numInput = document.getElementById('num');
- var btn = document.getElementById('btn');
- btn.onclick = function () {
- var num = parseInt(numInput.value);
- // 如果用户输入的数字大于 10, 那么提示合法, 否则提示不合法
- if(num>10){
- alert('输入合法');
- }
- if(num<=10){
- alert('输入不合法');
- }
- };
注意:
(1) 表达式必须放在小括号之中. 执行语句必须放在大括号内.
(2)if 条件语句最后不用加分号.
(3) 执行语句如果只有一句, 那么大括号可以不写. 但是推荐所有情况都加上大括号.
[如果不写大括号, 那么默认 if 后面的第一个语句是 if 的执行语句]
2,if-else 语句
描述: 如果满足条件执行 if 中的语句, 如果不满足则执行 else 中的语句.
if(表达式){
语句 1;
...
}else{
语句 2;
...
}
例子:
- var num = 10;
- if(num>0){
- console.log('输入合法');
- }else{
- console.log('输入不合法');
- }
- console.log('hello world!');
注意:
(1)if-else 语句是 if 的升级版本, 表示二元判断, 一定会执行一种情况.
(2)if-else 是一个语句, 末尾不加分号. 并不意味着执行语句不加分号!
(3)if 后面的表达式, 只要能返回一个布尔值即可.
例子:
- var num = 10;
- if(true){
- console.log('输入合法');
- }else{
- console.log('输入不合法');
- }
- console.log('hello world!');
3,if-else if 语句
描述:
判断表达式 1 是否成立, 如果表达式 1 成立执行语句 1 并 if 结构立即结束.
如果不成立则判断表达式 2 是否成立, 如果表达式 2 成立执行语句 2 并 if 结构立即结束.
如果不成立则判断表达式 3 是否成立, 如果表达式 3 成立执行语句 3 并 if 结构立即结束.
...
如果以上所有条件都不成立, 则直接执行 else 语句, 并立即结束.
语法:
if(表达式 1){
语句 1;
}else if(表达式 2){
语句 2;
}
...
else{
语句 4;
}
注意:
(1)if-else if 末尾没有分号
(2)else 语句不能单独存在, 总是向上查找离他最近的 if, 构成 if-else 结构
例子:
- var bmi = 22.9;
- if(bmi>22.3&&bmi<23.9){
- console.log('健康');
- }else if(bmi<22.3){
- console.log('太瘦了');
- }else{
- console.log('太肿了');
- }
- 4,switch
描述: 在多种情况下判断, 并选择一种情况执行的语句结构.
语法:
switch (表达式){
case 结果 1:{执行语句 1;...}
break;// 当执行了语句 1 之后, 能够跳出并结束 switch 语句
case 结果 2:{执行语句 2;...}
break;
...
default:{执行语句 n;}
}
解释: 如果 [表达式的结果] 等于 [结果 1] , 就执行语句 1, 并结束 switch.
如果不等于, 则判断是否等于结果 2, 如果等于就执行语句 2, 并结束 switch.
如果不等于, 则判断是否等于结果 3, 如果等于就执行语句 3, 并结束 switch.
...
如果所有 case 后面的结果都不满足, 那么直接执行 default 后面的语句, 并结束 switch.
注意:
(1)switch 语句当中 case 后面的 break 必须要写. 如果不写, 则会从满足的这个 case 开始将后面所有的情况全都执行一遍.
(2)default 语句理论上可以不写, 如果不写当都不满足时 switch 直接跳出.
(3)switch 语句一定会执行一种情况对应的语句 (语法结构完整情况下)
5,while 循环语句
描述: 当满足循环条件的时候执行循环体, 直到不满足为止, 跳出循环.
语法:
while(循环条件){
循环体
}
注意:
(1) 循环变量必须在循环中, 向着循环结束的方向发生变化.
[如果不改变, 或改变方向反了, 则会将循环变成无限循环. 也叫死循环.]
(2)while 循环最少执行次数为 0 次
(3) 循环执行开始之前, 循环变量必须先赋初值
(4) 循环体中如果只有一条语句, 那么大括号可以不写.(最好写上)
(5)while 循环末尾没有分号!
例子:
输出 10 以内的偶数
- var num = 1;
- while(num<11){
- // 只要满足条件, 就意味着 num 还在 1-10 之间.
- // 那么就判断 num 当前是不是偶数即可.
- if(num%2==0){
- console.log(num+'是偶数');
- }
- num++;
- }
6,do-while 循环语句
描述: 先执行一次循环体.
然后判断循环条件, 如果满足则继续执行循环体.
如果不满足, 则跳出循环, 循环终止.
语法:
do{
循环体
}while(循环条件);
说明: do-while 循环的注意事项, 逻辑结构基本都和 while 循环相同,
唯一的区别就是 do-while 循环会先执行一次循环体,
而 while 循环则是先判断循环条件.
例子:
- var i = 0;
- do{
- if(i%2==0){
- console.log(i+'是偶数');
- }
- i++;
- }while(i<10);
7,for 循环语句
描述: 能够设定循环多少次, 并直接设定循环条件和循环增量的语法结构.
语法:
for(表达式 1; 表达式 2; 表达式 3){
循环体
}
例子:
- for(var num = 0; num<10; num++){
- console.log(num);
- }
解释:
[1] 执行表达式 1:var num=0; 循环变量赋初值
[2] 执行表达式 2:num<10; 判断循环能否继续执行
(1) 满足条件, 循环继续, 执行循环体
(2) 不满足条件, 循环终止
[3] 因为满足条件, 因此执行循环体: console.log(num);
[4] 执行表达式 3:num++; 让循环变量向着循环结束的方向变化
[5] 执行表达式 2...
注意:
(1) 表达式 1 可以不写, 如果不写需要在 for 循环之外, 给循环变量赋初值
(2) 表达式 2 可以不写, 如果不写代表循环条件恒成立 (死循环)
(3) 表达式 3 可以不写, 如果不写需要在 for 循环的循环体中, 让循环变量发生改变
(4) 三个表达式实际上可以都不写, 但是用于间隔的分号必须写!
8, 辅助流程控制语句
1.break
描述: 用来终止代码块或者循环, 循环立即终止.
例子:
- for(var i = 0;i<100;i++){
- if(i == 10){
- console.log('我需要这个 10');
- break;// 循环在此立即终止
- }
- console.log(i);
- }
- 2.continue
描述: 用来终止本次循环, 并立即开始下一次循环, 循环不终止.
例子:
- for(var i = 0;i<100;i++){
- if(i == 10){
- console.log('我需要这个 10');
- continue;// 立即终止本次循环, 并立即开始下一次循环.
- }
- console.log(i);
- }
来源: http://www.bubuko.com/infodetail-3357058.html