小白学前端js高级-02

66 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第26天,点击查看活动详情

自学前端

  • 前文

    • 本文是我自学js的一些知识以及个人理解, 希望帮助到一些想要学习前端的小白朋友
    • 介绍本次学习的是js高级相关知识
    • 这是基于我学习的笔记而来的文章
    • backend: 后端 frontend: 前端

    相关问题

    1. 问题: var a = xxx; a内存中到底保存的是什么
      • xxx是基本数据, 保存的就是这个数据
      • xxx是对象, 保存的是对象的地址值
      • xxx是一个变量, 保存的xxx的内容(可能是基本数据, 也可能是地址值)
    2. 引用变量赋值的问题
      • 2个引用变量指向同一个对象, 通过一个变量修改对象内部数据, 另一个变量看到的是修改之后的数据
      • 2个引用变量指向同一个对象, 让其中一个引用变量指向另一个对象, 另一个引用变量依然指向前一个对象

    关于数据传递的问题

    问题: 在js调用函数时传递变量参数时, 是值传递还是引用传递

    • 理解1: 都是值(基本/地址值)传递
    • 理解2: 可能是值传递, 也可能是引用传递(地址值)

    问题: JS引擎如何管理内存?

    1. 内存生命周期
      • 分配小内存空间, 得到它的使用权
      • 储存数据, 可以反复进行操作
      • 释放小内存空间
    2. 释放内容

对象

  1. 什么是对象?
    • 多个数据的封装体
    • 用来保存多个数据的容器
    • 一个对象代表现实世界中的一个事物
  2. 为什么要用对象?
    • 统一管理多个数据
  3. 对象的组成
    • 属性: 属性名(字符串)和属性值(任意)组成
    • 方法: 一种特别的属性(属性值是函数)
  4. 如何访问对象内部数据?
    • .属性名: 编码简单, 有时不能用
    • ["属性名"]: 编码麻烦, 能通用
    • 问题: 什么时候必须使用["属性名"]的方式
      1. 属性名包含特殊字符: - 空格

      2. 属性名不确定

        函数

  5. 什么是函数?
    • 实现特定功能的n条语句的封装体
    • 只有函数是可以执行的, 其他类型的数据不能执行
  6. 为什么要用函数?
    • 提高代码的复用性
    • 便于阅读交流
  7. 如何定义函数?
    • 函数声明
    • 表达式
  8. 如何调用(执行)函数?
    • test(); 直接调用
    • obj.text; 通过对象调用
    • new text(); new调用
    • test.call/apply(obj): 临时让test称为obj的方法进行调用 (相当于obj.test();)

回调函数

  1. 什么函数才是回调函数?
    • 你定义的
    • 你没有调用
    • 但最终它执行了(在某个时刻或某个条件下)
  2. 常见的回调函数?
    • dom事件回调函数==>发生dom的元素

    • 定时器回调函数==>window

    • ajax请求回调函数

    • 生命周期回调函数

      后记

  • 希望对对前端有兴趣的朋友们有帮助
  • 这篇文章主要是关于js高级的, 希望大家喜欢
  • js的作者是美国人布兰登·艾奇, 非常厉害的人