随笔分类 -  JavaScript

JavaScript
摘要:this用的很多,react 的class component用了这么多自己也比较熟悉的了,下面就来讲讲如何判断一个this的绑定以及call、apply、bind的实现。 判断this绑定 主要就是以下的几点: 由new调用:绑定到新创建的对象上面。在类里面的contructor中,指向将要通过构 阅读全文
posted @ 2020-11-04 22:06 jaiodfjiaodf 阅读(145) 评论(0) 推荐(0)
摘要:每个javascript的执行上下文,都包含了三个东西 变量对象(Variable Object, VO) 作用域链(Scope Chain) this 作用域链 在《JavaScript深入之变量对象》中讲到,当查找变量的时候,会先从当前上下文的变量对象中查找,如果没有找到,就会从父级(词法层面上 阅读全文
posted @ 2020-11-03 20:26 jaiodfjiaodf 阅读(141) 评论(0) 推荐(0)
摘要:作用域 javascript采用的是词法作用域(lexical scoping),也就是静态作用域 var value = 1; function foo() { console.log(value); } function bar() { var value = 2; foo(); } bar() 阅读全文
posted @ 2020-11-03 19:15 jaiodfjiaodf 阅读(174) 评论(0) 推荐(0)
摘要:原型与原型链 我觉得,直接来一张图就好了 构造函数 在上图中,Person是一个构造函数,一般情况下,它长这个样子。 function Person() { } 什么是构造函数呢?构造函数,是一种特殊的方法,主要用来在创建函数的时候初始化对象。 原型 原型,prototye,是一个对象,这个对象能够 阅读全文
posted @ 2020-11-03 16:54 jaiodfjiaodf 阅读(145) 评论(0) 推荐(0)
摘要:其实我是不喜欢写分号的,好不容易能不写分号,像 python 一样,多爽。 几年前,各种各样的书大致上都推荐你加分号。 几年前,曾经由于构建工具有一些问题,导致不加分号可能会出问题。 jquery依然留着分号,vue源码不用分号, react源码规范需要分号。 不过,最关键的,还是看团队的代码风格。 阅读全文
posted @ 2020-08-17 21:41 jaiodfjiaodf 阅读(1430) 评论(0) 推荐(0)
摘要:今天在帮沈老司机调一个代码。 一开始的代码是通过写一个定时器然后通过 document.getElementById('')来获取 div 的高度,然后设置了一个计时器来动态更新高度的。 开始大概是这个样子的 setInterval(() => { let x = document.getEleme 阅读全文
posted @ 2020-07-09 16:05 jaiodfjiaodf 阅读(152) 评论(0) 推荐(0)
摘要:‘==’ 又是一个JavaScript 中一个著名的失误,许多的编程规范甚至要求完全避免用 == 运算,使用 ‘ 来替代 ‘==‘。 对于 ‘==’, 它在ECMA262 中写的非常的复杂,但是归根结底,类型不通的变量比较的时候也只有三条规则: undefined 与 null 相等 字符串和 bo 阅读全文
posted @ 2020-06-18 16:42 jaiodfjiaodf 阅读(170) 评论(0) 推荐(0)
摘要:12.toString 为什么会报错。 中间涉及到许多的词法分析,具体可以去看 winter 老师的重学前端、前端进阶训练营,再具体你可以直接去啃 ECMA-262去。 对于 12.toString 为什么会报错? 我们来看,我们写一个 NumberLiteral 的时候,有这些写法。 12 Num 阅读全文
posted @ 2020-06-18 15:36 jaiodfjiaodf 阅读(247) 评论(0) 推荐(0)
摘要:Completion function foo(){ try{ return 0; } catch(err) { } finally { console.log("a") } } console.log(foo()); // return 执行 console 输出 虽然 return 执行了,但是 阅读全文
posted @ 2020-06-18 11:24 jaiodfjiaodf 阅读(186) 评论(0) 推荐(0)
摘要:函数 分类 function foo() { // code } const foo = () => { // code } class C { foo() { // code } } function* foo() { // code } class Foo { constructor() { / 阅读全文
posted @ 2020-06-18 10:51 jaiodfjiaodf 阅读(153) 评论(0) 推荐(0)
摘要:闭包 作用域链 执行上下文 this 闭包(closure) 闭包分为两个部分 环境部分 环境:函数的词法环境(执行上下文的一部分) 标识符列表:函数中用到的未声明的变量 标识符部分:函数体 执行上下文(处于环境当中) lexical environment:词法环境,当获取变量或者 this 值的 阅读全文
posted @ 2020-06-18 10:30 jaiodfjiaodf 阅读(292) 评论(0) 推荐(0)
摘要:浏览器拿到一段 JavaScript 代码,是如何运行的? 设想一下,如果你是chrome 浏览器的开发者(这些人是真的666),如何使用Java Script 引擎执行 JavaScript? 其实当浏览器收到一段 JavaScript 的代码的时候,浏览器首先做的,就是传递给 JavaScrip 阅读全文
posted @ 2020-06-17 15:53 jaiodfjiaodf 阅读(634) 评论(0) 推荐(0)
摘要:JavaScript 中的对象分类 我们可以把对象分为以下的几类。 宿主对象(host Objects):由JavaScript 宿主环境提供的对象,它们的行为完全由宿主环境决定。 宿主对象千奇百怪,前端最熟悉的就是浏览器环境里面的宿主了。在浏览器里面,我们都知道全局对象是 window,windo 阅读全文
posted @ 2020-06-17 10:16 jaiodfjiaodf 阅读(425) 评论(0) 推荐(0)
摘要:早期的 JavaScript 程序员一般都有过使用 JavaScript“模拟面向对象”的经历。 惨啊(😂😂😂),prototype 是好的,就是语法别扭。 本文内容基本上还是 winter 老师 重学前端里面的内容,重学前端、前端进阶训练营真是非常值得的内容,看到此文的前端工程师真的推荐买买 阅读全文
posted @ 2020-06-16 16:37 jaiodfjiaodf 阅读(152) 评论(0) 推荐(0)
摘要:JavaScript的两类属性 该部分仍然来自 winter 老师 重学前端课程 06 章 对 JavaScript 来说,属性并非是简单的名称与值,JavaScript 用一组特征(attribute) 来描述属性(property) 首先来说第一类属性,数据属性。它比较接近于其它语言的属性概念。 阅读全文
posted @ 2020-06-16 15:51 jaiodfjiaodf 阅读(156) 评论(0) 推荐(0)
摘要:这句话是 winter 老师在重学前端这门课程 06 节里面说的,在写 JavaScript 的过程中自己也深有体会,总之就是这个特色使得 JavaScript 写起来非常爽。 在实现了对象基本特征的基础上,我认为,JavaScript 中对象独有的特色是:对象具有高度的动态性,这是因为 JavaS 阅读全文
posted @ 2020-06-16 14:46 jaiodfjiaodf 阅读(130) 评论(0) 推荐(0)
摘要:Object 是 JavaScript 中最复杂的类型,也是平时我们开发当中用的最多的。 JavaScript我们用到最多的对象,有下面这么几个 Number String Boolean Symbol(稍微少一点啦) 事实上,JavaScript 的’类’仅仅是运行时对象的一个私有属性,而 Jav 阅读全文
posted @ 2020-06-16 14:21 jaiodfjiaodf 阅读(153) 评论(0) 推荐(0)
摘要:JavaScript undefined 关键字 今天看到一个问题,为什么有的编程规范要求用 void 0 代替 undefined? 看完以后脑壳一怂,以后还是用 void 0 来代替 undefined 比较好,为什么呢?我们来看下面的代码 typeof undefined // 'undefi 阅读全文
posted @ 2020-06-16 13:50 jaiodfjiaodf 阅读(246) 评论(0) 推荐(0)
摘要:有限状态机处理字符 https://www.cnblogs.com/ssaylo/p/13130138.html ,先看这篇文章,了解 HTTP 请求是如何发送与接收的。 前言——如何在不适用正则与 JavaScript Api 接口的条件下查找字符数按所在的位置? winter 前端进阶训练营第六 阅读全文
posted @ 2020-06-16 10:51 jaiodfjiaodf 阅读(585) 评论(0) 推荐(0)
摘要:结构化(一) 事件循环&宏任务&微任务 事件循环是什么? 事件循环是浏览器执行任务的机制,它会不断循环判断消息队列中是否有任务,队列中的任务都是指宏任务,而宏任务中包含微任务队列,在宏任务结束前后执行微任务队列,直到微任务队列中为空才结束这个宏任务。 宏任务是什么? 渲染事件(如解析 DOM、计算布 阅读全文
posted @ 2020-06-12 14:37 jaiodfjiaodf 阅读(801) 评论(0) 推荐(0)