一.运算符
运算符也被称为操作符,是用于实现赋值,比较和执行算数运算等功能的符号。
1.JavaScript中常用的运算符有:
1.算数运算符
+, -, *, / ,%(取余)
<script>
console.log(1+1);
console.log(1-1);
console.log(1*1);
console.log(1/1);
console.log(4%2);
console.log(5%3);
console.log(3%5);//3
//用浮点数,可能会有问题
console.log(0.1+0.2);//0.30000000000000004
console.log(0.07*100);//7.000000000000001
//不能直接拿着浮点数判断是否相等
var num=0.1+0.2;
console.log(num==0.3);//false
</script>
//由数字,运算符,变量等组成的式子,我们称为表达式,任何表达式都有返回值
console.log(1+1);//2是返回值
2.递增和递减运算符
如果需要反复给数字变量添加或减去1,可以使用递增(++)和递减(--)运算符来完成。
递增和递减运算符必须和变量配合使用。
//前置递增运算符 ++写在变量前面
var age=10;
++age;
console.log(age);
//先自加1,在返回值
var p=10;
console.log(++p+10);//21
//前置自增和后置自增如果单独使用,效果是一样的
var num=10;
num++;
console.log(num);
//后置自增先返回原值,再自加1
var age=10;
console.log(age++ +10);//20
console.log(age);//11
var a=10;
++a;//a=11
var b=++a +2;//a=12 ++a=12
console.log(b);//14
var c=10;
c++; //c=11
var d=c++ +2;//c++=11 c=12
console.log(d);//13
var e=10;
var f =e++ + ++e;//1.e++=10 e=11 2. e=12 ++e=12
console.log(f);//22
3.比较运算符
<,>,>=,<=,==,!=,=== !== 全等,要求值和数据类型都一致。
console.log(18=='18');//true ==会默认转换数据类型,会把字符串型的数据转换为数字型
console.log(18===18);
console.log(18==='18');//false 要求两侧的值,还有数据类型完全一致才可以。
4.逻辑运算符
&&,||,!
逻辑与,两侧结果为真时,结果才是真。
逻辑或,两侧结果为假时,结果才是假。
短路运算(逻辑中断):当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值。
逻辑与:如果第一个表达式的值为真,则返回表达式2。如果第一个表达式的值为假,则返回表达式1。
逻辑或:如果表达式1结果为真,则返回的是表达式1,如果表达式1结果为假,则返回表达式2.
//逻辑与短路运算
console.log(123&&456);//456
console.log(0&&456);//0
//逻辑或短路运算
console.log(123||456);//123
console.log(0||456);//456
5.赋值运算符
=,+=,-=,*=,/=
二.流程控制
1.流程控制
控制代码按照什么结构顺序来执行。
流程控制有三种结构,分别是顺序结构,分支结构,循环结构,
2.顺序结构
3.分支流程控制
//1.if的语法结构
if(条件表达式){
//执行语句
}
//2.执行思路,如果if条件表达式为真,则执行大括号里边的代码。
var age=prompt('请输入年龄');
if(age>=18){
alert('我想去网吧');
}
var year=prompt('请输入年份');
if(year%4==0&&year%100!=0 ||year%400==0){
alert("是闰年");
}else{
alert('不是闰年');
}
var score=prompt('请输入成绩');
if(score>=90){
alert('A');
}else if(score>=80){
alert('B');
}else if(score>=70){
alert('C');
}else if(score>=60){
alert('D');
}else{
alert('E');
}
三元表达式也能做一些简单的条件选择,有三元运算符组成的式子称为三元表达式
条件表达式?表达式1:表达式2
执行思路:如果条件表达式为真,则返回表达式1,如果为假,则返回表达式2
var num=10;
var result= num>5?'是的':'不是的';
console.log(result);
var time=prompt('输入0-59之间的一个数字');
var result=time<10?'0'+time:time;
alert(result);
switch(2){
case 1:
console.log('这是1');
break;
case 2:
console.log('这是2');
break;
default:
console.log('没有匹配结果');
}
当switch后的2和case后的1比较的时候,是全等,要求数据类型和值一致。
如果当前的case没有break,则不会退出,继续执行下一个case。
switch通常处理值比较确定的情况,if比较灵活。
4.循环流程控制
断点调试
在浏览器运行界面中选择Sources,在程序代码前点一下,即可。
<script>
//循环的目的,可以重复执行某些代码
//在程序中,一组被重复执行的语句被称为循环体,能否继续重复执行,取决于循环的终止条件,
//由循环体及循环的终止条件组成的语句,被称为循环语句
// for(初始化变量;条件表达式;操作表达式){
// 循环体
//}
for (var i=1 ; i<=100; i++) {
console.log('你好啊');
}
//for循环可以重复执行不同的代码
for(var i=1;i<=100;i++){
if(i==1){
console.log('这个人1岁,出生了');
}else if(i==100){
console.log('这个人100了,死了');
}else{
console.log('这个人今年'+i+'岁');
}
}
var sum=0;
for(i=1;i<=100;i++){
//sum=sum+i;
sum+=i;
}
console.log(sum);
</script>
<script>
/* for(var i=0;i<=5;i++){
console.log('♥');
}
var str ='';
for(var i=1;i<=5;i++){
str=str+'♥';
}
console.log(str);
var str='';
for(var i=1;i<=5;i++){
for(var j=1;j<=5;j++){
str=str+'♥';
}
str=str+'\n';
}
console.log(str);
*/
/*
var str='';
for(var i=5;i>=1;i--){
for(var j=5;j>=i;j--){
str=str+'♥';
}
str=str+'\n';
}
console.log(str);
*/
/*var str='';
for(var i=1;i<=5;i++){
for(var j=i;j<=5;j++){
str=str+'♥';
}
str=str+'\n';
}
console.log(str);
*/
var str='';
for(var i=1;i<=9;i++){
for(var j=1;j<=i;j++){
str+=j+'x'+i+'='+i*j+'\t';
}
str+='\n';
}
console.log(str);
</script>
<script>
var num=1;
while(num<=100){
console.log('你好啊');
i++;
}
var messages=prompt('你爱我吗');
while(message!=='我爱你'){
message=prompt('你爱我吗');
}
alert('我也爱你');
//do while 至少会执行一次
var i=1;
do{
console.log('ni hao a');
i++;
}while(i<=100)
do{
var message=prompt('你爱我吗');
}while(message!=='我爱你')
alert('我爱你啊');
for(var i=0;i<=5;i++){
console.log('我是第'+i+'个数');
continue;
}
for(var i=0;i<=5;i++){
console.log('我是第'+i+'个数');
break;
}
</script>