• javascript忍者秘籍学习笔记(二)


    函数

    • arguments修改值会修改对应参数的值,解决办法是use strict
    • 函数上下文
      对于方法而言 即为方法所在的对象
      对于顶级函数而言,严格模式是undefined,非严格模式是window
      对于构造函数而言,是一个新创建的对象实例
      对于apply call 是传入的对象
      对于bind 是绑定的对象,返回的是函数
    • 箭头函数的this与声明所在的上下文的相同

    闭包

    • 闭包用途

      1. 封装私有变量
      2. 处理回调函数
        闭包使用原因:可以封装状态,不污染全局变量,写法简便,可复用性强
    • 执行上下文
      全局执行上下文和函数执行上下文

    • const var let
      通过const定义的基本数据类型的值只能设置一次
      const定义的对象不可变,但属性值可以变
      let 和var都定义变量 值可以变,var有变量提升,let没有,let定义的变量在声明之前使用会陷入暂时性死区报错
      从语法环境来说 var定义的变量是在距离最近的函数内部或是在全局此法环境中定义的,这也是变量提升的原因,var会忽略块级作用域,let和const直接在最近的此法环境中定义变量(包括块级作用域,循环内,函数内或全局环境内)

    • 函数的提升优先级
      javascript的代码执行是分两个阶段的

      1. 第一阶段,没有执行代码,JavaScript引擎会访问并注册当前词法环境中所声明的变量和函数
      2. 第二阶段 根据变量类型和环境类型具体执行代码
        所以在代码执行前,函数已经存在,函数的声明顺序无关紧要
        注意:只针对函数声明有效,函数表达式和箭头函数是在执行过程中定义的,所以都不行

    生成器和promise

    • 调用生成器并不会执行生成器函数,会创建迭代器对象,与生成器通信
  • 相关阅读:
    Easyui 遮罩实现方式
    eclipse修改web项目部署路径 wtpwebapps webapps 的设置
    JS中的!=、== 、!==、===的用法和区别。
    springboot自定义页面拦截
    springboot修改页面不用重启的设置(idea)
    js追加html元素
    获取上一节点、删除节点、删除上一元素
    刷新父页面
    html内获取当前文件路径,页面获取当前路径
    获取url后的参数、获取a标签的参数
  • 原文地址:https://www.cnblogs.com/dadaochangcun/p/11830521.html
Copyright © 2020-2023  润新知