51-59JS中for,break.continue,循环嵌套
2019-05-05 本文已影响3人
饥人谷_island
1.在JavaScript中定义变量有两种方式
ES6之前: var 变量名称;
ES6开始: let 变量名称;
2.两种定义变量方式的区别
如果通过var定义变量, 可以重复定义同名的变量, 并且不会报错, 并且后定义的会覆盖先定义的
如果通过var定义变量, 可以先使用后定义(预解析)
如果通过let定义变量, 不可以重复定义同名的变量
如果通过let定义变量, 不可以先使用再定义, 因为浏览器不会对let定义的变量进行预解析
3.什么是全局变量
全局变量就是定义在{}外面的变量, 我们就称之为全局变量
4.什么是局部变量
局部变量就是定义在{}里面的变量, 我们就称之为局部变量
5.全局变量和局部变量的区别
如果是全局变量, 那么有效范围是从定义变量的那一行开始直到文件的末尾都可以使用
如果是局部变量, 那么有效范围是从定义变量的那一行开始直到大括号结束为止(只有在大括号中才能使用)
*/
/*
// var num = 123;
// var num = 456;
// console.log(num);
// console.log(num);
// var num = 123;
*/
/*
var num;
console.log(num);
num = 123;
*/
/*
// let num = 123;
// let num = 456;
// console.log(num);
// let num = 123;
*/
// 无论是通过var还是通过let定义的全局变量, 都是从定义的那一行到文件末尾都可以使用
// var num = 123; // 全局变量
// let num = 123; // 全局变量
{
// 如果是通过var定义的局部变量, 和全局变量一样, 后续都可以被使用
// 如果是通过let定义的局部变量, 那么这个变量只能在当前定义变量的{}中使用
// var num = 666; // 局部变量
let num = 666; // 局部变量
console.log(num);
}
console.log(num);
if(true){
console.log(num);
}
1.for循环的格式
1 2/5/8 4/7
for(初始化表达式;条件表达式;循环后增量表达式){
3/6
需要重复执行的代码;
}
2.for循环的特点
for循环的特点和while循环的特点一样, 只有条件表达式为真, 才会执行循环体
3.for循环的执行流程
3.1首先会执行初始化表达式, 并且只会执行一次
3.2判断条件表达式是否为真, 如果条件表达式为真, 就执行循环体
3.3执行完循环体就会执行循环后增量表达式
3.4重复3.2~3.3, 直到条件表达式不为真为止
*/
/*
// 1.初始化表达式
let num = 1;
// 2. 条件表达式
while (num <= 10){
console.log("发射子弹" + num);
// 3.循环后增量表达式
num++;
}
*/
// 1.初始化表达式
// let num = 1;
// 2. 条件表达式
for(let num = 1;num <= 10;num++){
console.log("发射子弹" + num);
// 3.循环后增量表达式
// num++;
}
// 1.初始化表达式
let num = 1;
// 2. 条件表达式
while (num <= 10){
console.log("发射子弹" + num);
// 3.循环后增量表达式
num++;
}
// 如果是while循环, 在循环结束之后还可以使用用于控制循环结束的变量
console.log(num);
*/
// 1.初始化表达式
let num = 1;
// 2. 条件表达式
for(;num <= 10;num++){
console.log("发射子弹" + num);
// 3.循环后增量表达式
// num++;
}
// 如果是for循环, 在循环结束之后可以让外界使用, 也可以不让外界使用
console.log(num);
// 在企业开发中由于for循环比while循环要灵活, 所以能用for循环就用for循环
// 1.在for循环中"初始化表达式""条件表达式""循环后增量表达式"都可以不写
// 如果不写就相当于while(1);
// while (){ // while循环不能省略条件表达式
// console.log("123");
// }
// for(;;){ //for循环是可以省略条件表达式的, 默认就是真
// console.log("123");
// }
// 2.其它注意点和while循环一样
1.什么是break关键字?
break关键字可以用于switch语句和循环结构中
在switch语句中break关键字的作用是立即结束当前的switch语句
在循环结构中break关键字的作用也是立即结束当前的循环结构
2.break关键字的注意点
2.1break关键字后面不能编写任何的语句, 因为永远执行不到
2.2如果在循环嵌套的结构中, break结束的是当前所在的循环结构
*/
/*
let num = 123;
switch (num) {
case 123:
console.log("123");
break;
console.log("break后面的语句"); // 永远执行够不到
case 124:
console.log("124");
break;
default:
console.log("other");
break;
}
*/
/*
let num = 1;
while (num <= 10){
console.log("发射子弹" + num);
num++;
break;
console.log("break后面的语句"); // 永远执行够不到
}
*/
for(let i = 0; i < 5; i++){
console.log("外面的循环结构" + i);
for(let j = 0; j < 5; j++){
console.log("里面的循环结构-----" + j);
break;
}
}
1.什么是continue关键字?
continue关键字只能用于循环结构
在循环结构中continue关键字的作用是跳过本次循环, 进入下一次循环
2.continue关键字的注意点
2.1continue关键字后面和break一样, 不能编写其它的代码, 因为执行够不到
2.2和break一样, 如果continue出现在循环嵌套结构中, 只会跳过当前所在的循环
*/
/*
for(let num = 1; num <= 10; num++){
if(num === 1){
continue;
console.log("continue后面的代码"); // 永远执行不到
}
console.log("发射子弹" + num);
}
*/
for(let i = 0; i < 5; i++){
console.log("外面的循环结构" + i);
for(let j = 0; j < 5; j++){
if(j === 1){
continue;
}
console.log("里面的循环结构-----" + j);
}
}
需求: 要求往界面中打印****
需求: 要求往界面中打印三行 ****
*/
// document.write("****");
/*
document.write("*");
document.write("*");
document.write("*");
document.write("*");
*/
/*
for(let i = 0; i < 4; i++){
document.write("*");
}
document.write("<br>");
for(let i = 0; i < 4; i++){
document.write("*");
}
document.write("<br>");
for(let i = 0; i < 4; i++){
document.write("*");
}
*/
// 在循环嵌套中外循环控制的是行数, 内循环控制的是列数
for(let j = 0; j < 3; j++){
for(let i = 0; i < 4; i++){
document.write("*");
}
document.write("<br>");
}
需求: 在界面中输出如下图形
*****
****
***
**
*
*/
// 规律: 如果尖尖朝下, 那么只需要修改内循环的初始化表达式为外循环初始化表达式的变量即可
for(let i = 0; i < 5; i++){
console.log(i);
for(let j = i; j < 5; j++){
document.write("*");
}
document.write("<br>");
}
需求: 在界面中输出如下图形
*
**
***
****
*****
1
12
123
1
22
333
输出九九乘法表
-******
--***
---*
*/
// 规律: 如果尖尖朝上, 那么只需要修改内循环的条件表达式为外循环初始化表达式的变量即可
for(let i = 0; i < 5; i++){
console.log(i);
for(let j = 0; j <= i; j++){
document.write("*");
}
document.write("<br>");
}