1、操作符
运算符 operator
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); //5
var a = 1; var b = a++ + ++a; console.log(b); //4
var a = 1; var b = a++ + a++; console.log(b); //3
var a = 1; var b = ++a + a++; console.log(b); //4
总结
前置++:先加1,后参与运算
后置++:先参与运算,后加1
上面两个理解后,下面两个自通
前置-- :先减1,后参与运算
后置-- :先参与运算,后减1
逻辑运算符(布尔运算符)
&& 与 两个操作数同时为true,结果为true,否则都是false
|| 或 两个操作数有一个为true,结果为true,否则为false
! 非 取反(真时就是假,假时就是真)
关系运算符(比较运算符)
< > >= <= == != === !==
==与===的区别:==只进行值得比较,===类型和值同时相等,则相等
赋值运算符
= += -= *= /= %=
var num = 0;
num += 5; //相当于 num = num + 5;
运算符的优先级
优先级从高到底
1. () 优先级最高
2. 一元运算符 ++ -- !
3. 算数运算符 先* / % 后 + -
4. 关系运算符 > >= < <=
5. 相等运算符 == != === !==
6. 逻辑运算符 先&& 后||
7. 赋值运算符
2、表达式和语句
表达式
一个表达式可以产生一个值,有可能是运算、函数调用、有可能是字面量。表达式可以放在任何需要值的地方。
语句
语句可以理解为一个行为,循环语句和判断语句就是典型的语句。一个程序有很多个语句组成,一般情况下;分割一个一个的语句
3、流程控制
顺序结构:从上到下执行的代码就是顺序结构,程序默认就是由上到下顺序执行的
分支结构:根据不同的情况,执行对应代码
循环结构:重复做一件事情
分支结构:
1、if语句
语法结构
if (/* 条件表达式 */) {
// 执行语句
}
if (/* 条件表达式 */){
// 成立执行语句
} else {
// 否则执行语句
}
if (/* 条件1 */){
// 成立执行语句
} else if (/* 条件2 */){
// 成立执行语句
} else if (/* 条件3 */){
// 成立执行语句
} else {
// 最后默认执行语句
}
案例1:判断一个数是奇数还是偶数
var num=parseInt(prompt("请输入一个数"));
if (num%2==0) {
console.log("是偶数");
} else {
console.log("是奇数");
}
案例2:判断成绩的级别
var score=Number(prompt("请输入您的成绩"));
if (score < 0 || score > 100) {
alert("分数必须在0—100之间");
}
// if(!isNaN(score)){//如果为TRUE就说明不是数字, 如果你之前是真,取反后就是假; 如果你之前是假,取反就是真。
if (score>90&&score<=100) {
alert("A");
}else if(score>80){
alert("B");
}else if(score>70){
alert("C");
}else if(score>=60){
alert("D");
}else{
alert("E");
}
}else{
alert("您输入有误");
}
三元运算符
表达式1 ? 表达式2 : 表达式3
是对if……else语句的一种简化写法
案例:判断是否成年
var age=parseInt(prompt("请输入您的年龄"));
var result2=age>18?"成年了":"未成年";
alert(result2);
//大多数情况,使用if-else的表达式都可以用三元表达式来表示
switch语句:
语法格式:
switch (expression) {
case 常量1:
语句;
break;
case 常量2:
语句;
break;
case 常量3:
语句;
break;
…
case 常量n:
语句;
break;
default:
语句;
break;
}
break可以省略,如果省略,代码会继续执行下一个case
switch 语句在比较值时使用的是全等操作符, 因此不会发生类型转换(例如,字符串'10' 不等于数值 10)
案例: 显示星期几
var num=parseInt(prompt("请输入数字"));
switch(num){
case 1:alert("星期一");break;
case 2:alert("星期二");break;
case 3:alert("星期三");break;
case 4:alert("星期四");break;
case 5:alert("星期五");break;
case 6:alert("星期六");break;
case 7:alert("星期日");break;
default:alert("输入错误");
}
循环结构:while、do..while、for循环。
while语句
基本语法:
while (循环条件) {
//循环体
}
案例1:计算1-100之间的和
// 初始化变量
var i = 1;
var sum = 0;
// 判断条件
while (i <= 100) {
// 循环体
sum += i;
//sum=sum+i
// 自增
i++;
}
console.log(sum);
案例2:求1-100之间奇数的和
var sum=0;
var i=0;
while(i<=100){
if (i%2!==0) {
sum=sum+i;
}
i++;
}
alert(sum);
do...while语句
do..while循环和while循环非常像,二者经常可以相互替代,但是do..while的特点是不管条件成不成立,都会执行一次。
基础语法:
do {
// 循环体;
} while (循环条件);
代码示例:
// 初始化变量
var i = 1;
var sum = 0;
do {
sum += i;//循环体
i++;//自增
} while (i <= 100);//循环条件
案例1:求100以内所有3的倍数的和
var i=1;
var sum=0;
do{
if(i%3==0){
sum=sum+i;
}
i++;
}while(i<=100);
alert(sum);
for语句
while和do...while一般用来解决无法确认次数的循环。for循环一般在循环次数确定的时候比较方便
for循环语法:
// for循环的表达式之间用的是;号分隔的,千万不要写成,
for (初始化表达式1; 判断表达式2; 自增表达式3) {
// 循环体4
}
执行顺序:1243 ---- 243 -----243(直到循环条件变成false)
-
初始化表达式
-
判断表达式
-
自增表达式
-
循环体
案例1:打印9*9乘法表
//控制行数
for(var i=1;i<=9;i++){
//控制列,也可以认为是控制行的个数
for(var j=1;j<=i;j++){
document.write(j+"*"+i+"="+i*j);
}
document.write("<br/>");
}
案例2:本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?
var money=10000;
var rate=0.003;
for(i=1;i<=5;i++){
money=money+money*rate;
}
alert(money);
案例3:有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?(兔子的规律为数列,1,1,2,3,5,8,13,21)
var num1=1;//一月份
var num2=1;//二月份
var sum=0;
for(i=3;i<=12;i++){//从三月份开始
sum=num1+num2;
num1=num2;
num2=sum;
}
alert(sum);
4、continue和break
break:立即跳出整个循环,即循环结束,开始执行循环后面的内容(直接跳到大括号)
continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)
案例1:求1-100的奇数和(用continue)
var sum=0;
for (var i = 1; i <=100; i++) {
if(i%10==0){
i++;
continue;
}
sum=sum+i;
i++;
}
alert(sum);
案例2:求100-200之间第一个能被7整数的数(break)
for (var i = 100; i <=200; i++) {
if(i%7==0){
alert(i);
break;
}
}