摘要:
最近做了做一些js面试25 Essential JavaScript Interview Questions*,其中第一道是:使用typeof bar "object"检测”bar”是否为对象有什么缺点?如何避免? 这是一个十分常见的问题,用 typeof 是否能准确判断一个对象变量,答案是否定的, 阅读全文
摘要:
暂时性死区的表现 进入当前作用域,在变量声明之前访问变量,是无法访问到的。 这是由于let/const没有变量提升(提升到作用域顶部),因此通过let/const定义的变量不会被提升到作用域顶部——也就是此时的块级作用域,因此在声明之前无法访问。 但是 为什么报错信息是“Cannot access 阅读全文
摘要:
块级作用域 ES6引入块级作用域的原因主要有以下2点: 防止内部变量覆盖外部变量 防止循环变量泄露为全局变量 【内部变量覆盖外部变量】 以上ES5代码的写法,无论flag为true还是false,value不会报错,而是打印出undefined。 这是因为var存在变量提升——提升至当前作用域顶部, 阅读全文
摘要:
前言 闭包一直是很多前端开发人员跨不过去的一个坎,我也是一样。每次看各种文章好像弄懂了,但隔段时间好像又模模糊糊了,再看好像又有了新的理解,但感觉总是不能完全理解透彻。 在理解了变量环境、词法环境和作用域链等概念后,我发现理解起来容易多了,这次感觉是真的理解了。 同样,本文的内容是基于对作用域链和变 阅读全文
摘要:
this this是与执行上下文绑定的,每个执行上下文都有一个this;执行上下文有3种:全局执行上下文、函数执行上下文和eval执行上下文,因此this也有3种,全局执行上下文中的this、函数执行上下文中的this和eval执行上下文中的this。eval我们很少使用,因此这里我们只讨论全局执行 阅读全文
摘要:
作用域 作用域是可访问对象的集合,确定当前执行代码对变量的访问权限。 作用域可分为静态作用域和动态作用域,JavaScript采用静态作用域,也叫词法作用域。 静态作用域 函数的作用域 在函数定义的时候 就决定了,与函数如何被调用,在何处被调用无关。 以上代码,foo函数为打印出1。虽然foo是在b 阅读全文
摘要:
前言 文章 "深入js——执行上下文栈" 主要讲了代码执行过程中,执行上下文栈的变化,从文本开始,主要研究下执行上下文内部。 与执行上下文相关的3个概念: 变量对象(Variable object,VO) 作用域链(Scope chain) this 本文首先研究下变量对象。 变量对象VO 变量对象 阅读全文
摘要:
前言 js的很多不太好理解的概念,比如作用域、this、闭包,可以说都与执行上下文有关,弄懂了执行上下文,再去理解这些概念就没有难度了。 可执行代码 但js每执行一段可执行代码,就会进入一个执行上下文;js的可执行代码有3种: 全局代码 函数代码 eval代码 因此,js对应有3种执行上下文:全局上 阅读全文
摘要:
前言 Vue2.0对于响应式数据的实现有一些不足: 无法检测数组/对象的新增 无法检测通过索引改变数组的操作。 Vue2.0中响应式数据是通过Object.defineProperty实现,因此无法检测数组/对象的新增,但为什么无法检测到通过索引改变数组的操作呢?也是因为Object.defineP 阅读全文
摘要:
链接跳转 浏览器访问一个链接时,对于浏览器可以打开的文件类型,浏览器会跳转到该链接,而对于无法打开的文件类型,浏览器会自动下载. 因此根据这一特性,对于浏览器无法打开的文件类型,可以采用 ,`window.open`,a标签等只要是可以访问链接的方式,实现文件下载 缺点: 1) 对于图片等浏览器能打 阅读全文
摘要:
问题 在使用element ui时,有时候想要修改组件内的样式,但不成功,例如 以上对 的样式不生效 问题的原因 想要找到解决方案,我们先来看看不生效的原因。 1)首先,scoped是如何实现局部样式的? 查看 "vu loader文档" ,根据文档可以知道,当 scoped data v f3f3 阅读全文