百度一面 button 元素和 type 为 submit 的 input 的区别? input 元素设为 readonly 和 disable 的区别(提交后的值)? img 标签上的 title 和 alt 属性的区别? 说一下 script 标签,设置 async 和 defer 分别是什么表 ...
记-2018秋招腾讯面试经历(已完结)
腾讯一面 闭包的产生,弊端及使用场景 跨域解决方案以及 JSONP 的具体使用 盒模型 块级盒子和行内盒子的差别? HTTP 和 HTTPS 的差别?HTTPS 什么场景下就会不安全?HTTPS 有什么弊端?如何改进这种弊端? COMMONJS 和 ES6 的模块之间有什么不同 REM 的使用场景, ...
浏览器和Node中不同的Event Loop
对于每个前端学习者来说,可能在刚接触 JS 的时候就会不断地被灌输一个概念:JS 是单线程的。持着对这个概念的深(似)入(懂)理(非)解(懂),我在 JS 的道路上摸爬滚打了些时日,直到一年多前第一次看到朴灵大大的《深入浅出 Node.js》中对事件循环的解释,我才第一次真正的去尝试着理解 JS ...
移动端小白的flexible.js学习笔记
预备知识 一直以来都没有尝试过移动端的开发,但是却对 REM 适配方案很感兴趣。最近趁着开发微信小程序的契机,顺便学习了一下手淘前端团队的可伸缩布局方案 flexible。作为一个移动端开发小白,学习适配方案遇到的最大的困难可能是各种各样的换算关系和公式,网上大部分文章都会介绍非常多的专业词汇,我 ...
underscore(1.9.0)源码阅读系列-函数节流与函数防抖
节流和防抖的应用场景辨析 在开始这个这个部分前,我想先提问两个问题,看看你是否曾对节流和防抖有一定的概念了解? 问题一:当我们改变浏览器窗口大小时,如果我们在 resize 事件中进行了大量的运算,会导致浏览器非常的卡顿,解决这种问题的方案是节流还是防抖? 问题二:当用户在输入框中输入文字时,我 ...
underscore(1.9.0)源码阅读系列-迭代与递归
关于迭代和递归是什么,概念性的东西我不多介绍,举个例子(参考知乎上「递归」和「迭代」有哪些区别?的回答),比如你要给某小孩买玩具,迭代是你挑了一件觉得不行,又挑了一件又不行,如此这般,直到找到合适的玩具。而递归是你自己不太了解小孩子的需求,为了缩小范围,你让你的儿子去挑选,儿子虽然比你强点,但依 ...
underscore(1.9.0)源码阅读系列-硬绑定函数背后的故事
硬绑定函数绑定丢失问题 在之前的文章飘忽不定的 this中详细介绍过 this 的绑定规则,并且在一个栗子部分分析了绑定丢失的问题,这里重新回顾一下。先看以下的代码:function foo() { console.log(this.a);}var obj = { ...
underscore(1.9.0)源码阅读系列-从分组函数领略闭包之美
underscore 中的分组函数 在 underscore 中,提供了四个有关分组的函数,分别是 .groupBy、.indexBy、_.countBy 以及 _.partition。先来看看这四个 API 的作用。 _.groupBy(list, iteratee, [context]):可 ...
Vue的响应式数据原理
Vue 是一个开源的 MVVM 框架,实现了数据和视图的双向绑定,任意一方改变,也会引起另一方的变化。以下是我结合源码和一些网上的文章,做的一份关于响应式数据实现的笔记~ 设计模式 在本文开头,我想先把响应式数据的大概原理说一下,因为后续的讲解可能比较杂乱,先理解了思想再看后面的部分,能够减少 ...
JS设计模式-创建型模式
创建型设计模式专注于处理对象创建机制,以适合给定情况的方式来创建对象。创建对象的基本方式可能导致项目复杂性增加,而这些模式旨在通过控制创建过程来解决这种问题。 构造器模式(Constructor) 在《JavaScript设计模式》一书中将构造器模式纳入设计模式之中,而四人帮提出的设计模式中不 ...