zoukankan      html  css  js  c++  java
  • 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

    • 调用生成器并不会执行生成器函数,会创建迭代器对象,与生成器通信
  • 相关阅读:
    2、介绍在TensorFlow当中使用不同的方式创建张量tensor
    1、TensorFlow如何工作?
    1、
    7、Maven插件
    6、Maven仓库
    5、Maven-构建配置文件
    4、maven——构建生命周期
    3、示例(在java中使用JSON)
    2、json教程
    1、json背景
  • 原文地址:https://www.cnblogs.com/dadaochangcun/p/11830521.html
Copyright © 2011-2022 走看看