持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第26天,点击查看活动详情
自学前端
-
前文
- 本文是我自学js的一些知识以及个人理解, 希望帮助到一些想要学习前端的小白朋友
- 介绍本次学习的是js高级相关知识
- 这是基于我学习的笔记而来的文章
- backend: 后端 frontend: 前端
相关问题
- 问题: var a = xxx; a内存中到底保存的是什么
- xxx是基本数据, 保存的就是这个数据
- xxx是对象, 保存的是对象的地址值
- xxx是一个变量, 保存的xxx的内容(可能是基本数据, 也可能是地址值)
- 引用变量赋值的问题
- 2个引用变量指向同一个对象, 通过一个变量修改对象内部数据, 另一个变量看到的是修改之后的数据
- 2个引用变量指向同一个对象, 让其中一个引用变量指向另一个对象, 另一个引用变量依然指向前一个对象
关于数据传递的问题
问题: 在js调用函数时传递变量参数时, 是值传递还是引用传递
- 理解1: 都是值(基本/地址值)传递
- 理解2: 可能是值传递, 也可能是引用传递(地址值)
问题: JS引擎如何管理内存?
- 内存生命周期
- 分配小内存空间, 得到它的使用权
- 储存数据, 可以反复进行操作
- 释放小内存空间
- 释放内容
对象
- 什么是对象?
- 多个数据的封装体
- 用来保存多个数据的容器
- 一个对象代表现实世界中的一个事物
- 为什么要用对象?
- 统一管理多个数据
- 对象的组成
- 属性: 属性名(字符串)和属性值(任意)组成
- 方法: 一种特别的属性(属性值是函数)
- 如何访问对象内部数据?
- .属性名: 编码简单, 有时不能用
- ["属性名"]: 编码麻烦, 能通用
- 问题: 什么时候必须使用["属性名"]的方式
-
属性名包含特殊字符: - 空格
-
属性名不确定
函数
-
- 什么是函数?
- 实现特定功能的n条语句的封装体
- 只有函数是可以执行的, 其他类型的数据不能执行
- 为什么要用函数?
- 提高代码的复用性
- 便于阅读交流
- 如何定义函数?
- 函数声明
- 表达式
- 如何调用(执行)函数?
- test(); 直接调用
- obj.text; 通过对象调用
- new text(); new调用
- test.call/apply(obj): 临时让test称为obj的方法进行调用 (相当于obj.test();)
回调函数
- 什么函数才是回调函数?
- 你定义的
- 你没有调用
- 但最终它执行了(在某个时刻或某个条件下)
- 常见的回调函数?
-
dom事件回调函数==>发生dom的元素
-
定时器回调函数==>window
-
ajax请求回调函数
-
生命周期回调函数
后记
-
- 希望对对前端有兴趣的朋友们有帮助
- 这篇文章主要是关于js高级的, 希望大家喜欢
- js的作者是美国人布兰登·艾奇, 非常厉害的人