J S基础1 | 青训营笔记

90 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第3天

前言

由于JS涉及到的知识和概念较多,有一部分经常会混淆和忽略,特此进行记录和整理,包括内存泄漏、数据类型和关键字等内容。

1.内存泄露

定义:内存泄漏是指在编写js的过程中,被分配内存地址的对象长时间没有被释放而造成长期的内存占用,结果是运行应用程序响应变慢乃至最终崩溃的过程。

内存泄露的主要原因包括缓存、闭包、回调、定时器、DOM元素的引用太多且未在使用后释放,以及在未被注意的情况下定义过多的全局变量。

自动垃圾回收机制:浏览器的javascript拥有垃圾回收机制,垃圾收集器会周期性找出不再使用的变量并释放内存。

2.JS的八种数据类型

数据类型包括两类:值类型(基本对象类型)和引用类型(复杂对象类型)

值类型
(1)数字类型 - Number
(2)字符串类型 - String
(3)布尔类型 - Boolean
(4)符号类型 - Symbol
(5)未定义类型 - Undefined
(6)空类型 - Null
引用类型
(7)对象类型 - Object
(8)函数类型 - Function
typeofinstanceof能够返回数据类型,但是typeof不能区分Object、Array和Null,返回值均为Object,而instanceof不能区分Number、Boolean和String等基本数据类型

3. var/let/const关键字

var、let 和 const 均为 JavaScript 中用来声明变量的关键字,但是 let 和 const 关键字是在 ES6 中新增的。

var

(1) var存在变量提升,可以先调用后声明;
(2)允许多次声明,后面的可以覆盖前面的声明;
(3)在函数内部用var声明变量则是局部变量,如果不使用var则是全局变量。

let

(1)存在暂时性死区:在let声明变量前不能使用;存在暂时性死区:在let声明变量前不能使用;
(2)let的作用域是块级作用域{};
(3)在相同作用域内不能用let重复声明,但在不同作用域则可以{}.

const

(1)const在声明时必须进行初始化 const x=1
(2)const声明的变量为只读变量,不可修改;
(3)存在暂时性死区:在const声明变量前不能使用;
(4)var的作用域是块级作用域{},在块级作用域内不能重复声明;
(5)变量指向的内存地址所保存的数据不得改动.