JavaScript 高级使用 流程化控制 函数 作用域 变量

目录

经典购物车案例

do-while 循环

 for 循环

 continue与break

 循环嵌套

函数

函数名称(参数1,参数2)

带返回值自定义函数

return和break

变量作用域

js预加载/预解析

变量的查找规则

函数作用域

普通函数声明

函数表达式——匿名函数

函数名称 || 函数名称()

函数声明 || 函数表达式


 

经典购物车案例

      // 3.	已知,有商店的会员卡,里面的余额还剩1500
      // 已知,商店有促销活动,消费满1000会打9折
      // 要求:让用户输入商品单价与数量,点击”支付”按钮
      // 如果用户本次消费金额<1500,弹窗显示:
      // 支付成功,余额剩余:XXX元
      // 如果用户本次消费金额超出会员卡余额,弹窗显示:余额不足,会员卡余额1500元
      // 按钮绑定点击事件
      btn.onclick = function () {
        var total = price.value * num.value
        console.log("商品原价:" + total)
        // 满1000打九折
        if (total >= 1000) {
          total *= 0.9
          console.log("打折后的价格:" + total)
        }
        // 会员卡余额
        var card = 1500
        // 剩余金额
        var rest = card - total
        // 能否支付成功
        rest >= 0
          ? alert("支付成功,余额剩余:" + rest + "元")
          : alert("支付不足,会员卡余额:" + card + "元")
			price.value = ''
		    num.value = ''
      }

do-while 循环

do {
        循环体
}while(循环条件)

注意:do-while循环,第一轮不会判断,直接执行循环体内的内容,第二轮开始判断,符合条件,继续执行,不符合条件,结束循环。

 for 循环

for(初始值;循环条件;增量){
        循环体
}

  1. 循环的开始条件(var x = 1,sum =0;)可以定义多个变量,用逗号隔开。
  2. 循环条件有多个,如果发生冲突,要保持一致
  3. 冲突时,取决于最后的循环条件

 continue与break

  1. continue跳过本轮循环中的剩余循环体,开启下一轮循环
  2. break直接结束循环
  3. break用于内层循环,只结束当前内层循环

 循环嵌套

一个循环的循环体出现了另一个循环,叫循环嵌套

经典案例——倒三角

var str = ""
for (var i = 10; i >= 1; i--) {
    for (var j = 0; j < i; j++) {
          str += "❤" //拼接*
    }
    str += "\n"
}
console.log(str)

函数

自定义函数,将需要自行编辑要处理的逻辑,封装成一个函数,函数必须要调用才能执行,格式:函数名称()

参数函数(i,b)形参:函数中用于接收实参的变量;实参:调用时实际传的数据

function   函数名称(){

函数体

}

function 函数名称(参数列表){

        函数体

}

函数名称(参数1,参数2)

  1. 实参赋给形参
  2. 实参数目与自定义函数的形参对应
  3. 未给形参传值,则为undefined
  4. 调用函数时,实参个数与形参个数可以不匹配(不推荐)

带返回值自定义函数

function 函数名称(参数列表){

        函数体

        return 结果

}

调用格式:var 变量 = 函数名称(参数列表)

  1. return用于返回函数执行后的结果
  2. 外部想要获取到函数return的结果,需要调用函数
  3. 函数return后没有值,返回undefined,return后的代码不执行,遇到return,函数直接结束

return和break

  1. return用于函数中,结束函数的调用并返回结果
  2. break用于循环和switch-case,结束单层循环,或switch-case语句

变量作用域

  1. 全局作用域:在函数以外的作用域,只有一个全局作用域
    1. 全局变量:在全局命名空间中声明的变量或函数,位于全局作用域中,在代码的任何地方可以访问
    2. 在函数内,不+var声明的变量是全局变量,
  2. 函数作用域:在函数以内的作用域,可能有多个函数作用域
    1. 函数变量:在函数中声明的变量和参数,只能在函数内部访问,不能在外部访问
    2. 形参局部变量,不可以在全局范围内使用

js预加载/预解析

  1. 在程序执行前,会将用var声明的变量提升到所在作用域的最前面
  2. 注意:只提升声明部分,赋值不提升
  3. 用var声明的变量,变量提升,

变量的查找规则

  1. 变量提升+就近原则,当前作用域下有需要查找的变量,则不再向全局作用域查找。
  2. 形参属于局部变量,只能在函数内访问

函数作用域

  1. 全局函数:在全局作用域下创建的函数,可以在任何作用域下调用
  2. 局部函数:在函数作用域下创建的函数,只能在当前函数的作用域下调用

作用域中查找变量,首先在当前作用域中查找,如果当前作用域不存在,则会向外部作用域查找,直到达到全局作用域,这个过程叫作用域链。

函数提升:程序执行之前,会将函数整体提升到所在作用域的最前面

普通函数声明

function 函数名称(参数列表){

        函数体

}

函数表达式——匿名函数

var xxx = function(){

        函数体

}

匿名函数赋值给变量,变量名称就是函数名称

函数名称 || 函数名称()

  1. 函数名称,变量中保存函数类型的值
  2. 函数名称()调用函数,执行函数体代码

函数声明 || 函数表达式

  1. 函数声明,存在函数的整体提升,可以先调用,在创建
  2. 函数表达式,只存在声明提升,必须先创建,再声明
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值