赞
踩
变量 产生作用的区域就叫做作用域
全局作用域
局部作用域
函数作用域
块级作用域
作用域链的本质是变量查找机制
a. 会优先查找自己的作用域
b. 自己的作用域查找不到的话会往上查找父级直到全局作用域
是 JS
中一种自动回收或释放内存的机制 简称 GC
引用计数法:IE采用的引用计数算法, 定义“内存不再使用
”的标准很简单,就是看一个对象是否有指向它的引用
如果这个值的被引用了一次,那么就记录次数1 , 如果减少一个引用就减1。 如果引用次数是0 ,则释放内存。但它却存在一个致命的问题:嵌套引用。
标记清除法:就是从根部
(在JS中就是全局对象)出发定时扫描内存中的对象。 凡是能从根部到达的对象,都是还需要使用的。
无法由根部出发触及到的对象被标记为不再使用,稍后进 行回收
就是有权访问另一个函数作用域中变量的函数
在一个函数内部创建另外一个函数
封闭数据,实现数据私有,防止数据被意外修改
容易导致内存泄露
使用 var
声明的变量,会被提升到函数或全局作用域的顶部,这个现象叫做变量提升。
var
会存在变量提升,let/const
声明的变量不存在变量提升
是一种特殊的函数,主要用来初始化对象 ,同时可以用构造函数来快速创建多个类似的对象。
1.Array.from
2.Array.prototype.slice.call( )
3…展开运算符
在 JavaScript
中,基本类型是没有属性和方法的,但是为了便于操作基本类型的值,在调用基本类型的属性或方法时 JavaScript
会在后台地将基本类型的值转换为对象,这些对象就是包装类型
JavaScript
共有八种数据类型,分别是 Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt
。
其中 Symbol
和 BigInt
是 ES6 中新增的数据类型
Symbol
代表创建后独一无二且不可变的数据类型,它主要是为了解决可能出现的全局变量冲突的问题。
BigInt
是一种数字类型的数据,它可以表示任意精度格式的整数,使用 BigInt
可以安全地存储和操作大整数,即使这个数已经超出了 Number 能够表示的安全整数范围。
这些数据可以分为原始数据类型和引用数据类型:
栈:原始数据类型(Undefined、Null、Boolean、Number、String、Symbol 、BigInt
)
堆:引用数据类型(对象、数组和函数)
重点在于判断 是不是NaN,而不是 数字
isNaN
接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true
,因此非数字值传入也会返回 true
,会影响 NaN
的判断。Number.isNaN
只会判断 传入的数据 是不是 一个 NaN
,并且不会帮你做类型转换。原型,也叫原型对象,构造函数的一个属性,名字是 prototype
,它本身也是一个对象类型。在构造函数的原型所添加的成员可以被实例所共享。
原型链,指的基于原型继承的那些对象中,它们是通过 原型 prototype
将彼此联系在一起的,这个关系就叫做原型链。
① 当访问一个对象的属性(包括方法)时,首先查找这个对象自身有没有该属性。
② 如果没有就查找它的原型(也就是 proto
指向的 prototype
原型对象)
③ 如果还没有就查找原型对象的原型(Object的原型对象)
④ 依此类推一直找到 Object
为止(null)
⑤ proto
对象原型的意义就在于为对象成员查找机制提供一个方向,或者说一条路线
函数内部自己调用自己, 这个函数就是递归函数,往往都需要添加终止递归的条件。
浅拷贝只是针对引用类型数据中的属性做了一层复制,如果被拷贝的属性也是引用类型,那么这个属性只是复制了这个引用地址。
做了浅拷贝的对象之间可能会相互影响
深拷贝是针对引用类型数据中的属性做无限层级的复制,不管属性是值类型还是引用类型,会完整复制一份。 其在堆内存中完全开辟了一块内存地址,并将原有的对象完全复制过来存放
做了深拷贝的两个对象之间相互不会影响
除了 递归克隆对象、JSON.stringify
两种方式做的拷贝,其他方法全部都是浅拷贝
this
指向,call、apply
在修改 this 指向的同时也会调用原函数、bind
只会返回修改 this 指向后的函数call
和 apply
接收参数的方式不一样,call
类似普通函数一样接收参数、apply
接收的参数必须都放在一个数组内。成功(2XX)
状态码 | 原因短语 | 说明 |
---|---|---|
200 | OK | 表示从客户端发来的请求在服务器端被正确处理 |
201 | Created | 请求已经被实现,⽽且有⼀个新的资源已经依据请求的需要⽽建⽴ 通常是在POST请求,或是某些PUT请求之后创建了内容, 进行的返回的响应 |
202 | Accepted | 请求服务器已接受,但是尚未处理,不保证完成请求 适合异步任务或者说需要处理时间比较长的请求,避免HTTP连接一直占用 |
204 | No content | 表示请求成功,但响应报⽂不含实体的主体部分 |
206 | Partial Content | 进⾏的是范围请求, 表示服务器已经成功处理了部分 GET 请求 响应头中会包含获取的内容范围 (常用于分段下载) |
重定向(3XX)
状态码 | 原因短语 | 说明 |
---|---|---|
301 | Moved Permanently | 永久性重定向,表示资源已被分配了新的 URL 比如,我们访问 http 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/思考机器6/article/detail/62530 推荐阅读 相关标签 Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。 |