CSDN话题挑战赛第2期
参赛话题:学习笔记
学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?
流程控制语句
if
if语句的语法如下:
if(expression){
statement
} else {
statement
}
if语法的执行语义是当expression值为真的时候执行statement,如果expression的值不为真,则执行else后面的语句。statement表示任意语句。
if语句后面的大括号包含条件为真时需要执行的语句,如果没有大括号,则只执行if语句后面的第一条语句。
var num=90;
if(90>50) alert('正确');
if(90>50)
alert('正确');
alert('不管if条件是否成立我都会被执行'); // 行代码为一个独立的代码,与if语句无关
if(90>50){
alert('正确');
}
alert('当if条件为false时我会被执行');
if / else if / else
多个if语句可以组合成if……else if……else语句
var num=12;
if(num>10){
num++;
}else if(num>0&&num<=10){
num--;
}else{
num+=2;
}
console.log(num);
//只要有一个条件成立,后面不管是否还有成立的条件,都不再执行了
var n=10
if(n>5){
n+=2;
}else if(n>8){
n+=1;
}else{
n--;
}
关于条件可以怎么写?
//> < >= <= == 常规比较
if(0){
//不管条件写什么,最后总要把其计算出true /false来判断条件是否成立(把其他类型的值转换成布尔值,0/NaN/null/undefined/''为false,其他都为true)
}
if('3px'+3){
//在JS中+-*/都是数学运算,除+以外其余运算符在运算的时候,如果遇到了非数字类型的,首先会转换成数字类型(Number),然后再进行运算
//+在Js除了数学运算相加,还有字符串拼接的作用(如果遇到了字符串,则为字符串拼接,而不是数学相加)
}
switch case
switch语句是与if语句紧密相关的一种流控制语句,语法如下:
switch(expression){
case value1:
statement;
break;
case value2:
statement;
break;
default:
break;
}
这里的每个case(条件/分支)相当于:“如果表达式等于后面的值,则执行下面的语句。”这里的每个case(条件/分支)相当于:“如果表达式等于后面的值,则执行下面的语句。”
下面这个示例演示if转换为switch语句。
var num=12;
if(num==10){
num++;
}else if(num==5){
num--;
}else{
num=0;
}
//改成switch case
switch(num){
case 10:
num++;
break;
case 5:
num--;
break;
default:
num=0;
}
//应用于变量在不同值情况下的不同操作,每一种case结束后都要加break
n++和n=n+1一样吗?
var n=10;
n++;
n=n+1;
console.log(n);//此时n=11
var n='10';
n++;//此时n=11
n=n+1;//此时为字符串拼接输出'101'
不加 break,后面的条件是否成立都会被执行,利用此机制我们可以完成一些特殊的处理,例如:如果 num 等于10或等于5都要做同样的事,那么我们写在一起,不用加 break 即可。
var num=9;
switch(num){
case 10:
case 5:
num--;
break;
default:
num=0;
}
循环语句
do while循环语句
先执行再判断,如果条件一开始不满足,最少执行一次
var box=1;
do{
alert(box);
box++;
}while(box<5);
while循环语句
先判断再执行
var box=10;
while(box<20){
alert(box);
box++;
}
for循环
作用:按照一定规律,重复去做某件事情,此时我们就需要循环来处理
1.定义初始值
2.设定循环成立的条件,条件成立循环继续,条件不成立循环结束
3.条件成立执行循环体内的内容(大括号内包裹的是循环体)
4.执行步长累加操作
var ary = [12,23,34];
for(var i=0;i<ary.length;i++){
console.log(ary[i]);
}
//输出奇数项
for(var i=0;i<ary.length;i++){
if(i%2===0){
console.log(ary[i]);
}
}
for in循环语句
用于遍历对象的属性值
var box={
name:'jerry',
age:10;
gender:'man'
}
for(var x in box){
alert(box.x);
}
for of语句
for-of语句是一种严格的迭代语句,用于遍历可迭代对象的元素
let arr = [2,4,6,8]
for(let ele of arr){
console.log(ele)
}
for循环中的关键字
- break:中断循环
- continue:继续
for(var i=0;i<10;i++){
if(i<5){
i++;
continue;//结束本轮循环进入下一轮循环
}
if(i>7){
i+=2;
break;//结束整个循环
}
i+=3;
}
for(var i=1;i<=10;i+=2){
if(i<=5){
i++;
continue;
}else{
i-=2;
break;
}
i--;
console.log(i);
}
console.log(i);
with 语句
var box={
name:'jerry',
age:90,
gender:'man'
}
with(box){
alert(name);// 这里的name相当于box.name
}
var boxList=oBox.getELementsByTags('li');
- 获取的结果是一个元素集合(HTMLCollection),首先它是对象数据类型的,结构和数组非常相似(数字作为索引,length 作为长度),但不是数组,我们把它叫做“类数组”。boxList[0] 获取当前集合中第一个 LI(通过索引去到具体的某一个 Li 即可)boxList.length 获取集合中 LI 的个数
- 集合中的每一项存储的值又是一个元素对象(对象数据类型,包含很多的内置属性)boxList[1].style.color=‘red’ 修改集合中第二个LI的文字颜色
throw语句
thorw语句的作用是抛出一个异常,其语法如下
throw expression;
throw语句可以抛出任意类型的值,抛出的值作为异常的信息。
try……catch语句
try……catch语句是由try语句和catch语句组合而成的语句。
try语句包含一个代码块,其中可能发生异常。catch子句提供异常处理代码,语法如下
try{
}catch(params){
}
当catch子语句捕获到异常时,catch的参数就是异常对象。
try{
console.log(a)
}catch(e){
console.log(e);
}
运行上面的代码之后,先执行try语句中的代码,但是变量a没有定义因此报错,try语句捕获错误传递给catch语句,在catch语句中错误对象被打印。
除了有try和catch还可以有finally语句。
try{
}catch(params){
}finally{
}
finally语句中的代码不管是否发生异常都会被执行。