随笔 - 66,  文章 - 0,  评论 - 0,  阅读 - 28882

随笔分类 -  JS

为什么 0.1 + 0.2 != 0.3
摘要:原因 因为 JS 采用 IEEE 754 双精度版本(64位),并且只要采用 IEEE 754 的语言都有该问题。 计算机是通过二进制来存储东西的,那么 0.1 在二进制中会表示为 // (0011) 表示循环 0.1 = 2^-4 * 1.10011(0011) 我们可以发现,0.1 在二进制中是 阅读全文
posted @ 2020-02-05 13:52 蒸汽小工人 阅读(491) 评论(0) 推荐(0) 编辑
instanceof 的原理
摘要:instanceof 可以正确的判断对象的类型,因为内部机制是通过判断对象的原型链中是不是能找到类型的 prototype。 function myInstanceof(left, right) { let prototype = right.prototype left = left.__prot 阅读全文
posted @ 2020-02-05 13:48 蒸汽小工人 阅读(182) 评论(0) 推荐(0) 编辑
js之new的原理
摘要:在调用new的过程中会发生以上四件事情: 1.新生成了一个对象 2.链接到原型 3.绑定this 4.返回新对象 function create() { let obj = {} //创建一个新对象 let Con = [].shift.call(arguments)//拿到arguments的第一 阅读全文
posted @ 2020-02-05 13:15 蒸汽小工人 阅读(285) 评论(0) 推荐(0) 编辑
手写 Promise
摘要:在完成符合 Promise/A+ 规范的代码之前,我们可以先来实现一个简易版 Promise,因为在面试中,如果你能实现出一个简易版的 Promise 基本可以过关了。 那么我们先来搭建构建函数的大体框架 const PENDING = 'pending' const RESOLVED = 'res 阅读全文
posted @ 2019-12-27 23:51 蒸汽小工人 阅读(164) 评论(0) 推荐(0) 编辑
手写call、apply、bind
摘要:call Function.prototype.myCall = function(context){ if(typeof this !== 'function'){//调用myCall的函数 throw new TypeError('error') } context = context||win 阅读全文
posted @ 2019-12-27 23:46 蒸汽小工人 阅读(143) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示