吃透JavaScript核心——流程控制之循环结构 & 命名规范

335 阅读2分钟

循环

循环的目的:重复执行某些代码。

  • 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...offor...in
for...of语句可迭代对象(包括 ArrayMapSetStringTypedArrayarguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。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 ... inArray的循环得到的是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 )后都要加空格

参考

www.cnblogs.com/kongxy/p/46…