JS分支结构
if语句
同java
-
if
-
if…else
-
if…else…if
//案例:判断输入密码长度 let pwd = prompt("请输入密码");let L = pwd.length;if(L<6){alert("密码小于六位");}else if(L>=6 && L<16){alert("密码大于6位小于16位");}else if(L>=16){alert("密码大于16位");}
switch语句
同java:switch…case
var id = 1;
switch(id){case 1:console.log("普通会员");break; //停⽌执⾏,跳出switchcase 2:console.log("VIP会员");break; //停⽌执⾏,跳出switchcase 3:console.log("管理员");break; //停⽌执⾏,跳出switchdefault: //上述条件都不满⾜时,默认执⾏的代码console.log("游客");
}
JS函数的定义和使用
function函数是被设计为执⾏特定任务的代码块,可以重复使用,除内置函数外还可以自定义函数,在需要的地方调用函数,避免重复编写,有理由代码的后期维护
函数定义
-
JavaScript中函数声明要以 function 关键字开头,之后为要创建的函数名称, function 关键字必须为⼩写
-
function 关键字和函数名称之间⽤空格分开
-
参数个数可以是任意个
当参数给默认值,调用时没传参,就会用默认值作为参数
-
{}中写函数体
语法格式
function 函数名(参数){//函数体
}
-
无参函数
参数个数为0;
function sayHi(){console.log("hello,Everybody~"); }
-
有参函数
参数个数不为0
function sayHi(str){console.log(str); }sayHi("Hello"); //调用传参
函数返回值
- 当函数执⾏完的时候,很多时候并不⼀定要将结果打印出来,⽽是希望函数会返回⼀个结果值(⽐如计算的结果返回后进⾏后续的计算),返回的这个结果值就称为“返回值”
- 在函数中通过 return 返回⼀个返回值
- 返回值可以是任何类型,⽐如字符串、数字、数组、对象等
- 返回的结果可以直接打印,或者使⽤⼀个变量来接受这个函数的返回值
函数表达式
另外⼀种声明函数的形式
关键字 变量名(函数名) = function(参数){//函数体
}
//示例
var getSum = function(num1,num2){var sum = num1+num2;return sum;
}console.log(getSum(10,20)) ;
匿名函数
就是没有名字的函数
-
如果只写⼀个匿名函数,不符合语法要求会报错,所以需要给匿名函数包裹⼀个 () 使之成为表达式
-
被⼩括号包裹起来的内容会被js识别为表达式
//方法一 (function(){alert("富强民主文明和谐"); })();//方法二 (function(){alert("自由平等公正法制"); }());
函数作用域
- 局部作用域
- 函数运⾏时,在函数内部形成了 局部作⽤域 ,在局部作⽤域中定义的变量叫做局部变量
- 函数运⾏结束时局部变量会⾃动销毁
- 函数内部可以可以访问函数外部的变量,函数外部不能访问内部的变量
- 全局作用域
- 全局作⽤域指的是window,即当前窗⼝,window定义下的变量叫做全局变量
- 全局变量在当前⽂档中有效
var num = 1;
function fun(){var num = 2;console.log("控制台中的num"+num); //输出2
}
fun();
alert("弹框中的num"+num); //输出1
===================================================
{var name1 = "成龙"; //var函数作用域let name2 = "小钰"; //let块级作用域
}
console.log(name1); //输出成龙
console.log(name2); //报错
JS数组创建
构造函数创造数组
可以使⽤ Array对象 来定义数组
- values 表示数组中各个元素组成的列表
- 多个元素之间⽤逗号 , 隔开
- 如果只提供⼀个参数,那么这个数组表示数组的初始⻓度
var arr = new Array("大头儿子","小头爸爸","围裙妈妈");console.log(arr);
字面量创造数组
直接使⽤ [] 来定义数组
var arr = ["虹猫蓝兔七侠传","成龙历险记","神厨小福贵","神兵小将"];
JS循环
与JAVA中相同
while循环
while 循环适合在未知条件时使⽤
while(循环条件){//代码内容
}
do while循环
先执行后判断
do{//代码内容
}while(循环条件);
for 循环
适合在已知循环次数时使用
四个条件:初始值(只执行一次) 循环条件 条件迭代 循环语句
for(var i =1;i<10;i++){document.write(i+" ");
}
break
终止循环
continue
跳出当前循环,不影响下一次循环
for in 循环
for in 循环 是普通for循环的变体,主要⽤来遍历对象,可以将对象中的 属性 依次循环出来
for(variable in Object){//执行代码
}
-
variable是一个变量,每次循环时这个变量都会被赋予不同的值,可以在 {} 中使⽤变量进⾏⼀系列操作
-
Object 是要遍历的对象,每次循环中,会将 Object
对象中的每⼀个属性的键赋值给变量 variable ,直到对象中的所有属性都遍历完。
for of 循环
- for of循环 是ES6中新增的⼀种循环⽅式,与 for in 类似,也是普通for循环的⼀种变体。
- 使⽤ for of 循环 可以遍历数组或其他可遍历的对象,如:字符串、对象等。
for(variable of iterable){//执行代码
}
- variable 是⼀个变量,每次循环时变量会被赋予不同的值,我们可以在后⾯的 {} 中使⽤这个变量进⾏⼀系列操作
- iterable 是要遍历的内容,每次循环中,会将 iterable 中的⼀个值赋予给变量 varible ,直到 iterable 中的所有值都遍历完
JS数组的方法
- isArray():判断是否为数组
- concat() :拼接两个或更多的数组,并返回结果
- pop():删除数组的最后⼀个元素并返回删除的元素
- push():向数组的末尾添加⼀个或更多的元素,并返回数组的⻓度
- shift():删除并返回数组的第⼀个元素
- unshift():向数组的开头添加⼀个或多个元素,并返回数组的⻓度
- index0f():搜索数组中的元素,并返回它所在的位置
- splice():⽤于添加或删除数组中的元素
- forEach() :数组每个元素都执⾏⼀次回调函数
- map():通过指定函数处理数组的每个元素,并返回处理后的数组
注意
- map速度比foreach快
- map会返回⼀个新数组,不会对原数组产⽣影响;foreach不会返回新数组,返回的是undefined
let arr = ["神厨小福贵","成龙历险记","神兵小将","哪吒传奇","虹猫蓝兔七侠传"];let arr1 = [1,2,3,4,5];let arr2 = ["存折","宇将军"];// let result = Array.isArray(a);// let result = arr.pop();// let result = arr.push("洛洛历险记");// let result = arr.shift();// let result = arr.unshift("果宝特攻");// let result = arr.indexOf("成龙历险记")// let result = arr.indexOf("小鲤鱼历险记")// let result = arr.concat(arr1);// let result = arr1.concat(arr);// let result = arr.concat(arr1,arr2); //多个字符串拼接// let result = arr.splice(1,1);// let result = arr.splice(2);// let result = arr.splice(1,1,"香奈儿");// let result = arr.splice(1,1,"古驰","祖马龙");// console.log(result);// console.log(arr);// let result = arr.forEach(// function(value , index, oldarr){// // console.log(value+"==="+index+"==="+oldarr);// return value,index,oldarr;// }// )// let result = arr.map(// function(value,index,oldarr){// // console.log(value+"==="+index+"==="+oldarr);// return value,index,oldarr;// }// )console.log(result);