循环
循环的目的:重复执行某些代码。
- JS中有for\while\do while循环。
- 三个循环很多情况下可以互相代替使用。
- for普遍用于计数。
- while\do while可以做更复杂的判断,比for灵活。
- while\do while的执行顺序和执行次数不一样。
- 实际工作中,for更常用。
for循环
一组被重复执行的语句被称为循环体,能否继续重复执行,取决于循环的终止条件。由循环体及循环的终止条件组成的语句,被称为循环语句。
for循环
for(初始化变量;条件表达式;操作表达式){
//循环体
}
//初始化变量 声明一个普通变量,作计数器使用;
//条件表达式 终止的条件
//操作表达式 每次循环后最后执行的代码,用于对计数器进行更新
断点调试
- 浏览器中按F12-->Sources-->找到需要调试的文件-->在程序的某一行设置断点。
- F11:程序单步执行,让程序一行一行的执行。观察watch中变量的值的变化。
- Watch:监视,通过watch可以监视变量的值的变化。
打印⭐⭐⭐⭐⭐
//1.
for(var i=1;i<=5;i++){
console.log('⭐')// ❺⭐
}
//2.
var str='';
for(var i=1;i<=5;i++){
str=str+'⭐'
}
console.log(str);//⭐⭐⭐⭐⭐
双重for循环
for(外层初始化变量;外层条件表达式;外层操作表达式){
for(内层初始化变量;内层条件表达式;内层操作表达式){
//执行语句;
}
}
for...in... 与 for...of...
可枚举属性
在JavaScript中,对象的属性分为:
- 可枚举
- 不可枚举
它们是由属性的 enumerable 值决定的。可枚举性决定了这个属性能否被
for…in查找遍历到。
怎么判断属性是否可枚举
js中基本包装类型的原型属性是不可枚举的,如Object, Array, Number等,不能被for…in 查找遍历到。
var num = new Number();
for(var pro in num) {
console.log("num." + pro + " = "+ num[pro]);//输出为空!
}
for...of... for...in... 对比
| for...of | for...in |
|---|---|
for...of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。 | for...in语句以任意顺序遍历一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性。 |
for ... of适合遍历数组。数组可以用Array.prototype.forEach()和for ... of来遍历。 | for ... in适合遍历对象属性。hasOwnProperty()判断对象中是否有当前的属性。 |
for...of...遍历数组,遍历的是数组元素值且不包括数组的原型属性method和索引name。Array.prototype.method=function(){ console.log(this.length); } var myArray=[1,2,3] myArray.name="数组"; for (let value of myArray) { console.log(value);//1 2 3 }for...in...遍历数组,遍历的是数组的索引(即键名):Array.prototype.method=function(){ console.log(this.length); } var myArray=[1,2,3] myArray.name="数组"; for (let value in myArray) { console.log(value);//0 1 2 name method console.log(myArray[value]);//1 2 3 数组 } //ƒ (){console.log(this.length);}Array也是对象,而它的每个元素的索引被视为对象的属性,因此,for ... in循环可以直接循环出Array的索引。for ... in对Array的循环得到的是String而不是Number。
while循环
while循环
while(条件表达式)
{
//循环体
}
do while循环
do
{
//循环体
}while(条件表达式)
- do while 先执行一次循环体,再判断条件。do while 循环体至少执行一次。
continue break
continue
continue关键字用于立即跳出本次循环,继续下一次循环。
//求1~100之间,除了能被7整除之外的整数和
var sum=0;
for(var i=0;i<=100;i++)
{
if(i%7==0){
continue;
}
sum+=1;
}
break
break关键字用于立即跳出整个循环。
命名规范
标识符
- 变量、函数的命名必须要有意义。
- 变量的名称一般用名词。
- 函数的名称一般用动词。
操作符
操作符(+ - / *...)的左右两侧各保留一个空格。
单行注释规范
空格+//+注释
其他规范
if for )后都要加空格