文章目录
一、JavaScript流程控制
- 任何编程语⾔都是由⼀系列语句构成的。
- ⼀条语句可以是⼀个赋值语句,⼀个函数调⽤,⼀个循环,甚⾄⼀个什么也不做的(空语句)条件语句。
- 在任何⼀⻔程序设计语⾔中,都需要⽀持满⾜程序结构化所需要的三种基本结构:
- 顺序结构
- 分⽀结构(选择结构)
- 循环结构 - 顺序结构:在程序结构中,最基本的就是顺序结构。程序会按照⾃上⽽下的顺序执⾏。
1.分⽀结构(条件语句)
在 JavaScript 中,我们可使⽤以下分⽀语句:
- if 语句 - 只有当指定条件为 true 时,使⽤该语句来执⾏代码
- if…else 语句 - 当条件为 true 时执⾏代码,当条件为 false 时执⾏其他代码
- if…else if…else 语句 - 使⽤该语句来选择多个代码块之⼀来执⾏
- switch…case 语句 - 使⽤该语句来选择多个代码块之⼀来执⾏
//if .. else 分⽀判断示例:
var grade = 70;
//单⼀分⽀结构
if(grade>=60){
console.log("成绩合格!");
}
//双分⽀结构
if(grade>=60){
console.log("成绩合格!");
}else{
console.log("成绩不及格!");
}
//多分⽀结构
if(grade>=90){
console.log("成绩优秀!");
}else if(grade >= 75 ){
console.log("成绩良好!");
}else if(grade >= 60){
console.log("你的成绩合格!");
}else{
console.log("成绩不及格!");
}
//switch 分⽀判断示例:
//switch实现多分枝判断
//获取今天星期⼏的数字
var day=new Date().getDay();
switch (day)
{
case 0:
x="星期⽇";
break;
case 1:
x="星期⼀";
break;
case 2:
x="星期⼆";
break;
case 3:
x="星期三";
break;
case 4:
x="星期四";
break;
case 5:
x="星期五";
break;
case 6:
x="星期六";
break;
default:
x="⽆效的星期信息!";
}
console.log(x);
2.循环结构
JavaScript ⽀持不同类型的循环:
- for - 循环代码块⼀定的次数
- for/in - 循环遍历对象的属性
- while - 当指定的条件为 true 时循环指定的代码块
- do/while - 同样当指定的条件为 true 时循环指定的代码块
for 循环:
for(语句1; 语句2; 语句3){
//被执⾏的代码块
}
//语句1: 在循环(代码块)开始前执⾏,常⽤于初始化循环条件
//语句2: 定义运⾏循环(代码块)的条件,⽤于判断何时结束循环
//语句3: 在循环(代码块)已被执⾏之后执⾏,常⽤于递增或递减来影响语句2的判断,直⾄结束循环
- 示例代码:
//循环输出1~10的值
for(var i=1;i<=10;i++){
console.log(i);
}
//计算1~100的累加值
var sum = 0;
for(var i=1;i<=100;i++){
sum += i;
}
console.log(sum); //5050
for…in 循环遍历对象:
for(属性变量 in 被遍历对象){
被执⾏的代码块
}
- 参考示例:
var ob = {"name":"张三","age":22,"sex":"男"};
//遍历对象ob中的每个属性
for(key in ob){
//输出属性和对应的属性值
console.log(key+":"+ob[key]);
}
/*
//输出结果:
name:张三
age:22
sex:男
*/
while 循环:
- While 循环会在指定条件为真时循环执⾏代码块。
while (条件){
需要执⾏的代码
}
- 注意:如果您忘记增加条件中所⽤变量的值,该循环永远不会结束。该可能导致浏览器崩溃。
- 参考代码:
//循环输出10~1的值
var i = 10;
while(i>=1){
console.log(i);
i--;
}
//计算1~100的累加值
var sum = 0;
var i = 0;
while(i<=100){
sum += i;
i++;
}
console.log(sum); //5050
do/while 循环:
- do/while 循环是 while 循环的变体。
- 该循环会执⾏⼀次代码块,在检查条件是否为真之前,然后如果条件为真的话,就会重复这个循环。
- 该循环⾄少会执⾏⼀次,即使条件是 false,隐藏代码块会在条件被测试前执⾏。
do{
需要执⾏的代码;
}while(条件);
- 参考示例:
//循环输出1~10的值
var i = 1;
do{
console.log(i);
i++;
}while(i<=10);
//计算1~100的累加值
var sum = 0;
var i = 0;
do{
sum += i;
i++;
}while(i<=100);
console.log(sum); //5050
循环中的 break break 和 continue continue 语句:
- break 语句⽤于跳出循环。
- continue ⽤于跳过循环中的⼀个迭代。
- break语句
- 它⽤于跳出 switch() 语句;break 语句可⽤于跳出循环;break 语句跳出循环后,会继续执⾏该循环之后的代码(如果有的话)。 - continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下⼀个迭代。
二、JavaScript函数
1.JavaScript的函数
- 函数是什么:
- 函数(function)是⼀段完成指定任务的已命名代码块。函数可以遵照给它的⼀组值或参数完成特定的任务,并且可能返回⼀个值。 - 在JavaScript中有两种函数:⾃定义函数与系统函数。
- 函数的优越性:
- 控制程序设计的复杂性
- 提⾼软件的可靠性
- 提⾼软件的开发效率
- 提⾼软件的可维护性
- 提⾼程序的重⽤性 - 标准格式:
function 函数名([参数列表..]){
函数体。。。
[return 返回值;]
}
- JavaScript三种定义函数⽅法:
- 第⼀种是使⽤function语句定义函数 如上⾯格式
- 第⼆种是使⽤Function()构造函数来定义函数(不常⽤)
var 函数名 = new Function(“参数1”,”参数2”,”参数3”……”函数体”);
- 第三种是在表达式中定义函数
var 函数名 = function(参数1,参数2,…){函数体};
- 例如:
//定义
var add = function(a,b){
return a+b;
}
//调⽤函数
document.write(add(50,20));
- 函数的使⽤:
//通过函数名直接调⽤函数
//函数名(参数1,参数2,…)
myadd(10,20);
//函数⾃调⽤
(function () {
console.log("Hello Function!");
})();
-
arguments 对象
- 在函数代码中,使⽤特殊对象 arguments,开发者⽆需明确指出参数名,就能访问它们。
- arguments是⼀个对象,是⼀个伪数组,arguments[索引]---->实参的值
- 也可以访问这个值,即第⼀个参数的值(第⼀个参数位于位置 0,第⼆个参数位于位置 1,依此类推)。
- arguments.length—>是实参的个数 -
关于变量作⽤域:
- 由于函数的出现导致了变量的定义分为函数内定义和函数外定义,即全局和局部变量
- 全局变量:在函数外使⽤var声明的变量就是全局变量,全局变量可以在⻚⾯的任何位置使⽤
- 全局变量,如果⻚⾯不关闭,那么就不会释放,就会占空间,消耗内存。
- 局部变量:在函数内使⽤var关键字定义的变量是局部变量,即出了函数外边⽆法获取。
- 隐式全局变量:没有使⽤var声明的变量,就叫隐式全局变量,在函数外可以获取到。
- 全局变量是不能被删除的,隐式全局变量是可以被删除的(使⽤delete)
- 定义变量使⽤var是不会被删除的,没有var是可以删除的
- 函数外⾯定义的变量是全局变量,函数内可以直接使⽤。
- 在函数内部没有使⽤var定义的=变量则为全局变量。 -
函数中的返回值:
- 如果⼀个函数中有return ,那么这个函数就有返回值
- 如果⼀个函数中没有return,那么这个函数就没有返回值
- 如果⼀个函数中没有明确的返回值,那么调⽤的时候接收了,结果就是undefined
- (没有明确返回值:函数中没有return或函数中有return,但是return后⾯没有任何内容)
- 函数内容执⾏遇到return,则⽴刻执⾏返回,且下⾯的代码是不会被执⾏的
2.系统中常⽤的内置函数
- escape() //字串编码
- unescape() //字串反编码
- *eval() //将参数字符串作为脚本代码来执⾏。
- *isNaN() // is not a number (不是⼀个数值)
- *parseInt()
- *parseFloat()
(完)