js语句

语句

条件语句

1: ifelse

  • 应用:在不同条件下输出不同结果时候, 难点【如何根据条件写表达式】
  • 代码块中变量 【是全局变量】
  • 如果执行满足-一个条件的代码块。其他条件下代码块不会执行
  • if() () 必须是【true】才能执行 if 中代码块 【true来源】 1. 直接 true
    2:表达式返回值 3:直接使用变量,变量的值【转化】为布尔类型

(2)三元运算符

  • ? 左边【条件】
  • ? 右边 中间 满足条件的 if 语句
  • : 右边else语句
  • 右边如果为条件则是else if语句
  • 记忆技巧 ? if : else
  • 嵌套逻辑分组解决 ()

for 循环

1: for(key in obj){}

  • 作用遍历对象
    2:for
  • 应用;遍历数组
  • 某个语句需要重复执行多次。
  • 循环后退与循环语句相反 若 i++ 退 i-- 若 i-- 退 i++
  • 循环语句中变量 【全局变量】
  • 初始化语句必须写在循环外部
  • 循环体内语句;可以获取到每次循环变化的过程
  • 循环体外,可以访问的最后一次执行语句时的结果
  • i 的 变化 外部最大值 = 内部最大值+1 外部最小值 = 内部最小值-1

for 情景再现

  • 循环体中执行【函数】–> 多次调用函数,函数有返回值,这有多个返回值输出
  • 循环嵌套 里面的循环执行的总次数 = 外部循环次数 * 内部循环次数
  • 里面的循环特点,外面循环体没执行一次,里面循环执行多次
  • 动态表格实现
  • 结构复杂的数据处理
  • 多维数组

for 计算问题

  • 方式第一步 找规律
  • 第二步 根据规律写表达式
  • 第三步 找特殊(特殊条件下输出的结果)
  • 第四步 写表达式
  • 第五步 写完成结果的语句

for中break与continu

  • break结束循环,即使还有好多次没有循环;也不执行了
  • continue 跳出循环体本次执行,但是不结束循环;

###函数
1:函数定义 function
2:函数执行 :函数名()
3:参数 :
- 形参 作用:接收实参,供给方法体使用
- 实参:为任意的js数据类型。
- 实参如果为【定义的函数】,则这个函数是回调函数
- 形参与实参一一对应
- 形参与变脸的区别:形参只赋值一次 ,变量可以重新赋值
- 实参的个数小于等于形参的个数
- arguments 伪数组:接收实参,有他不用其他形参
4:方法体
- var 定义的变量,只有方法体中变量为局部的,其他一律全局的
- 写语句 ,完成该方法的业务逻辑
- 方法体中变量执行完毕后就会被释放,不会在内存中保存
- 变量的局部作用域形成时间:在函数定义时

5:return 
- 函数返回值
-  结束语句 return下所有的语句都不会被执行
 - 返回值 :只有函数执行时才会【出现】
 - 应用: 把函数完成忆江南:结果【告诉外界】---->外界用变量接收 

6:函数的调用
 - 函数没调用一次,方法体会执行一次,执行完毕后,方法体内的变量就会释放
 - 函数可以重复调用 

6.5 :回调函数
 - 函数作为参数传给另一个函数 就是回调函数
 - 是否需要执行? 需要:
   - 内置API中回调函数 在封装时候就触发了
   - 自定义的,要自己写
   - 变量为局部
   - 回调地狱    - --》解决方法 promise 对象 ---》过多 .then --->asnyc await
   - 难点:在回调地域中,不能知道执行函数
    - 解决方式:1:打印输出 2:查看执行时传入的值
    - 回调函数 异步的 但是代码里面的函数为同步的
7:封装方法的思路
-  【定作用】确定封装方法的作用是什么
- 【定形参】确定实现作用需要哪些【变量】材料------>形参
- 【传实参】找到一个特殊的实参,在这个实参情况下,如果完成业务
- 【定值】变【变值】,把固定的值变为可变的值
- 【找特殊】 在特殊的情况下的结果 -----写条件句写表达式
- 【返回结果】
8:作用域
-  作用域分为 全局作用域 ,局部作用域,块级作用域【es6】
- 作用域大的不可以访问作用域小的变量
- 【只有】function 函数内部的变量为【局部的】 for 与 if 是全局    的
- 全局的变量永远不可能是私有的,不论是用var let const 声明的
- 块级作用域,【不限于函数】任何一个代码块都可以有【私有变量】【let】
 9:作用域链【scope】
 - 作用域  一层作用域包裹另一层作用域,从而形成作用域链,通过scope
 - 作用域链导致了变量的使用规则。
  - 1:在自己的作用域中找,如果没有就去父域中找,知道找到全局域为止
 - 变量查找方式
  - 1:先看声明,再看赋值,赋值使用的就近原则
  - 注意:xxx=nnnn不是全局的
10 变量提升
 - 在当前作用域中声明的变量,会将变量提升到作用域顶部
 - 声明提升 值不提升【undefined】
 - 在当前域使用变量是,看当前使用变量是否赋值
11: this指向
- 全局下的this 指向window 
- 函数中的this 谁调用指向谁
- 事件处理函数中 this 谁触发指向谁
- 对象中的this 默认指向当前对象
- 箭头函数中无this 但是如果箭头函数中出现this如何解决
- 构造函数中的this指向构造函数的对象

12 :区分this 使用指向问题
 第一步 :看this在哪里
   - 全局 this 指向 window
   - 函数中
第二步:区分在什么函数中?
- 箭头函数中,this 找上层域的this 【自己没有】
  - 上层域(全局) === window   
  - 上层域(函数function)=====>按照下面步骤走

- function函数:
- 事件处理函数:this 指向【触发实现的对象】 ---- >谁绑定指向谁
- 构造函数 this 指向 构造函数创建的对象
- 其他 
第三步:看函数后是否有bind() call() apply()
- 有 以上三个参数 参一是什么:this 指向参一对象
- 无 -----》使用谁调用指向谁规则
- 注意 this.xx= xxx是重新赋值,还是添加属性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值