![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
我是你的阿周啊
在CSDN上做了这么久的伸手党潜水党, 现在开始来输出知识,贡献一下自己小小的力量啦~~
展开
-
JS学习笔记—手写一个简易的Promise
<script> const PENDING = 'pending'; const RESOLVED = 'resolved'; const REJECTED = 'rejected'; function MyPromise(fn){ const that = this; that.state = PENDING; //...原创 2019-04-22 15:02:59 · 486 阅读 · 0 评论 -
JS学习笔记—JS 的 Event Loop
执行栈和Event Loop行栈是一个存储函数调用的栈结构,遵循先进后出的原则。当开始执行 JS 代码时,首先会执行一个main函数,然后执行我们的代码。根据先进后出的原则,后执行的函数会先弹出栈。当遇到异步的代码时,会被挂起并在需要执行的时候加入到 Task(有多种 Task) 队列中。一旦执行栈为空,Event Loop 就会从 Task 队列中拿出需要执行的代码并放入执行栈中执行...原创 2019-04-25 10:41:13 · 126 阅读 · 0 评论 -
JS学习笔记—使用instanceof判断原始类型
问题提出:var str = 'hello world'str instanceof String // falsevar str1 = new String('hello world')str1 instanceof String // true问题解决:class PrimitiveString { static [Symbol.hasInstance](x) {...原创 2019-04-18 12:58:55 · 811 阅读 · 0 评论 -
JS学习笔记—类型转换
在 JS 中类型转换只有三种情况,分别是:转换为布尔值 转换为数字 转换为字符串转Boolean在条件判断时,除了undefined,null,false,NaN,'',0,-0,其他所有值都转为true,包括所有对象。对象转原始类型对象在转换类型的时候,会调用内置的[[ToPrimitive]]函数,对于该函数来说,算法逻辑一般来说如下:如果已经是原...原创 2019-04-18 13:39:28 · 120 阅读 · 0 评论 -
JS学习笔记—深浅拷贝
浅拷贝1、Object.assign:Object.assign只会拷贝所有的属性值到新的对象中,如果属性值是对象的话,拷贝的也是地址let a = { age: 1}let b = Object.assign({}, a)a.age = 2console.log(b.age) // 12、展开运算符...let a = { age: 1}let b =...原创 2019-04-18 16:18:07 · 124 阅读 · 0 评论 -
JS学习笔记—var、let 及 const 区别
函数提升优先于变量提升,函数提升会把整个函数挪到作用域顶部,变量提升只会把声明挪到作用域顶部 var存在提升,我们能在声明之前使用。let、const因为暂时性死区的原因,不能在声明前使用 var在全局作用域下声明变量会导致变量挂载在window上,其他两者不会 let和const作用基本一致,但是后者声明的变量不能再次赋值var a = 10var aconsole...原创 2019-04-19 09:51:52 · 114 阅读 · 0 评论 -
JS学习笔记—通过 Proxy 来实现一个数据响应式
Proxy 是 ES6 中新增的功能,它可以用来自定义对象中的操作。let onWatch = (obj, setBind, getLogger) => { let handler = { get(target, property, receiver) { getLogger(target, property) return Reflect.get(...原创 2019-04-19 10:40:44 · 715 阅读 · 0 评论 -
JS学习笔记—手写封装call、apply 、 bind 函数和new的实现
一、实现call函数Function.prototype.myCall = function(context) { if (typeof this !== 'function') { throw new TypeError('Error') } //当传入的context为基础类型时,直接挂载fn会报错 if(typeof context !== 'object') ...原创 2019-04-25 11:06:14 · 863 阅读 · 0 评论