持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第5天,点击查看活动详情
前端最重要的三大基础(前端三剑客),HTML CSS JAVASCRIPT,学习前端必学的三门基础知识点。
特别是JavaScript,这个基础必须是要最扎实的,不管在哪个项目中,前端都不会离开他的,所以我们要打牢它的基础。学习完基础后JavaScript的深入学习也是必不可少的,从这节开始,浅浅的说一下JavaScript深入的知识点,大概会从下面几个方面来说:
- JavaScript 基础深入
- 函数
- 面向对象
- 线程机制与事件机制
JavaScript 基础深入
1. 类型
JavaScript的几大数据类型大家应该都清楚,主要是分两大类,基本(值)类型,对象(引用)类型,简单列一下
-
基本(值)类型
- Number: 任意数值
- String: 任意文本
- Boolean: true/false
- undefined: undefined
- null: null
-
对象(引用)类型
- Object: 一般对象类型
- Array: 特别的对象类型(下标/内部数据有序)
- Function: 特别的对象类型(可执行)
判断JavaScript类型
根据分类大概会分为三种判断方法
-
typeof:
- 可以区别: 数值, 字符串, 布尔值, undefined, function
- 不能区别: null与对象, 一般对象与数组
-
instanceof
- 用来判断对象数据的类型: Object, Array与Function
-
===
- 可以判断: undefined和null
问题
-
undefined与null的区别?
-
undefined原理上来说就是没有找到,变量没有赋值
-
null: 代表变量赋值了,只是值为null,空对象
-
区别
- 数据类型不一样 用typeof进行判断,null的数据类型是object,undefined的数据类型是undefined
console.log(typeof null) // object console.log(typeof undefined) // undefined- null和undefined 两者相等,但是当两者做全等比较时,两者又不等
console.log(null == undefined) // true console.log(null === undefined) // false- null代表"空",代表空指针;undefined是定义了没有赋值
let x; console.log(x); // undefined var y = null; console.log(y) // null
-
-
什么时候将变量赋值为null?
- 初始化赋值: 将要作为引用变量使用, 但对象还没有确定
- 结束时: 将变量指向的对象成为垃圾对象
-
理解变量类型与数据类型?
- js的变量本身是没有类型的,变量的类型实际上是变量内存中数据的类型
- 变量类型:
- 基本类型: 保存基本类型数据的变量
- 引用类型: 保存对象地址值的变量
- 数据对象
- 基本类型
- 对象类型
2. 数据、内存、变量
什么是数据?
- 万物(一切)皆数据, 函数也是数据
- 具有可读和可传递的基本特性
- 存储于内存中代表特定信息的东西, 本质就是0101二进制
- 程序中所有操作的目标:
- 算术运算
- 逻辑运算
- 赋值
- 调用函数传参
什么是内存?
- 内存条通电后产生的存储空间(临时的)
- 内存的空间是临时的, 而硬盘的空间是持久的
- 分配内存: 声明变量和函数或创建对象时, JS引擎会自动为此分配一定大小的内存来存放对应的数据
- 释放内存: 清空内存中的数据, 标识内存可以再分配使用(内存不释放就不能复用)
- 自动释放: 栈空间的局部变量
- 垃圾回调器回调: 堆空间的垃圾对象
- 一块内存包含2个数据
- 内部存储的数据(一般数据/地址数据)
- 内存地址值数据
- 内存分类
- 栈: 全局变量, 局部变量 (空间较小)
- 堆: 对象 (空间较大)
什么是变量?
- 一个变量对应一块小内存, 变量名用来查找到内存, 变量值就是内存中保存的内容
- 值可以变化的量, 由变量名与变量值组成
内存,数据, 变量三者之间的关系
- 变量是内存的标识, 我们通过变量找到对应的内存, 进而操作(读/写)内存中的数据
- 内存是一个容器, 用来存储程序运行需要操作的数据