-
while
-
语法 while (条件表达式) { //循环执行代码段 }
-
流程
- 1、判断条件表达式的值
- 2、当值为true时循环执行代码段
- 3、当值为false时退出循环体
-
特性
- 先检查条件,再执行循环体
- 条件不满足则循环一次也不执行
-
时机
- 一个动作被重复执行到满足某个条件时
-
-
do-while
-
语法 do { //代码执行主体 } while (条件表达式);
-
流程
- 1、先执行循环体内代码再进行判断
- 2、如果表达式的值为true,则重复执行代码段
- 3、如果表达式的值为false,则退出循环体
-
特性
- 先执行循环体,再进行条件判断
- 循环体内代码至少执行一次
-
时机
- 希望一个动作至少被执行依次时
-
for
- 特性
-
for(循环变量=初值;循环条件;递增/递减计数器){循环代码段};
for (var i = 0; i < array.length; i++) { array[i] //代码执行的主体 }
-
注意for循环length的优化;
-
- 特性
-
流程
- 1、用循环变量初始值与循环条件相比较,确定返回值
- 2、如果返回值为true则执行循环体
- 3、执行完一次后进行递增/递减运算
- 4、将运算结果与循环条件相比较
- 5、如果返回值还是true则继续执行循环体;如果返回值为false则退出循环体;
-
时机
- 重复一个动作到一定次数时;
-
for-in
- 语法
-
for(声明变量in对象){代码段} for (var variable in object) { if (object.hasOwnProperty(variable)) { //代码执行主体 } }
-
作用:枚举对象属性
-
- 语法
注意事项
- 1、循环输出的属性顺序不可预知
- 2、对象的值不能是null或者undefined;
- return:终止函数体的运行,并返回一个值
- break:终止整个循环,不再进行判断
- continue:结束本次循环,接着去判断是否执行下次循环;
选择语句,有三个,if和switch、?:三目运算符
if
- 句法 if(条件表达式1){ 代码段1 }else if(条件表达式2){ 代码段2 }else{ 代码段3 }
- 流程
- 1、判断条件1,如果返回值为true则执行代码段1
- 2、如果条件1的返回值为false,则跳过语句块1并检测条件2
- 3、如果所有表达式的值均为false则执行else后面的语句(else的这个语句为非必须的,可以不写)
- 特性
- 结果复杂可嵌套
- 可检测度哟个条件表达式
- 表达式的值具有线性特征
- 表达式的值的动态的
- 适用于任意类型的数据
- 可处理复杂的逻辑关系(代码的逼格低,多重判断可用swith case代替)
switch
- 句法 switch(条件表达式){ case 标签1: 代码段1 break; …… Default: 代码段n; }
- 流程
- 1、计算表达式的值,并与各标签相比较
- 2、若找到与之匹配的标签,则执行其后面的代码段
- 3、弱没有照东啊与之匹配的标签,则直接执行default之后的代码段(default是非必须的)
- 格式
- case标签为常量,可以是字符串或数字
- 每个标签均为冒号:结束
- 虽然break与default为可选项,但为了逻辑清晰最好不要省略
- case标签的值必须和条件表达式的值完全匹配
- 特性
- 结构简介,转为多重选择设计
- 仅可测试一条条件表达式
- 表达式的值具有离散型
- 表达式的值是固定的,不会动态变化的
- 仅能应用整数,枚举,字符串等类型数据
- 仅能处理多个枚举型逻辑关系
- throw:主动抛出异常
- try:指明需要处理的代码段
- catch:捕获异常
- finally:后期处理,无论出不出错都会执行;
- for循环和while循环的转化;
- return/continue/break的区别
- 说说写JavaScript的基本规范?书写规范;
- 变量的首字母不能是数字,其它字母可以是字母、数字、下划线
- 不能用关键字和保留字作为变量的名字;
- 使用驼峰命名法来书写变量后续需要用到的变量,可以先赋值为null;
- 使用匈牙利命名法来书写明确知道变量名字;让别人一眼看出什么变量类型;
- 借用变量的时候;变量最后不用时候置为null;
经典的总结:
- 不要在同一行声明多个变量。
- 请使用 ===/!==来比较true/false或者数值
- 使用对象字面量替代new Array这种形式
- 不要使用全局函数。
- switch语句必须带有default分支
- 函数不应该有时候有返回值,有时候没有返回值。
- for循环必须使用大括号
- if语句必须使用大括号
- for-in循环中的变量 应该使用var关键字明确限定作用域,从而避免作用域污染。