JS
文章平均质量分 79
愚蠢史迪奇
前端学习之路。。。
展开
-
前端大杂烩之JS(二)
5. 事件委托(手写例子),事件冒泡和捕获,如何阻止冒泡?如何阻止默认事件? 事件委托//事件冒泡 elem.addEventListener(type,function(){},false); //事件捕获 elem.addEventListener(type,function(){},true); 阻止冒泡div.onClick = function() { console.log(...原创 2018-05-11 09:14:36 · 266 阅读 · 0 评论 -
前端大杂烩之JS(一)
1. js的基本类型有哪些?引用类型有哪些?null和undefined的区别 基本类型:Number,String,Boolean,Null,undefined。指的就是保存在栈内存中的简单数据段。 引用类型:Object,Array,Date,RegExp,Function。存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。 null和un...原创 2018-05-07 10:24:08 · 245 阅读 · 0 评论 -
前端大杂烩之JS(三)
8. call,apply,bind 在JavaScript 中,this的指向是动态变化的,很可能在写程序的过程中,无意中破坏掉this的指向,所以我们需要一种可以把this的含义固定的技术,于是就有了call,apply 和bind这三个方法,来改变函数体内部 this的指向,因为函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念。 callvar a = { ...原创 2018-05-21 10:28:18 · 208 阅读 · 0 评论 -
前端大杂烩之JS(四)
12. new一个对象具体做了什么? 使用关键字new创建新实例对象经过了以下几步: 1、创建一个新对象,如:var person = {}; 2、新对象的_proto_属性指向构造函数的原型对象。 3、将构造函数的作用域赋值给新对象。(也所以this对象指向新对象) 4、执行构造函数内部的代码,将属性添加给person中的this对象。 5、返回新对象person。 var person ...原创 2018-06-04 14:33:13 · 249 阅读 · 0 评论 -
前端大杂烩之JS(五)
15. 举例说明一个匿名函数的典型用例 最常见的用法(function() { alert('water'); })(); 带参数(function(o) { alert(o); })('water'); 链式调用(function(o) { alert(o); return arguments.callee; })('water')('down');...原创 2018-06-12 17:31:03 · 307 阅读 · 0 评论 -
前端大杂烩之JS(六)
20. 图片滚动懒加载 懒加载的意义(为什么要使用懒加载) 对于图片过多的页面,为了加速页面加载速度,很多时候我们需要将页面内未出现在可视区域内的图片先不做加载, 等到滚动到可视区域后再去加载。这样对于页面加载性能上会有很大的提升,也提高了用户体验。 原理 图片滚动懒加载的原理非常简单:基于<img>标签,在初次加载时,不把图片url放在src属性中,而是自定义一个属性,例如dat...原创 2018-06-19 15:38:55 · 316 阅读 · 0 评论 -
前端大杂烩之JS(八)
28. typeof 和 instanceof 区别,instanceof原理 typeof typeof方法返回一个字符串,来表示数据的类型,但是数组、正则、日期、对象的typeof返回值都是object。所以用typeof方法来判断引用数据类型,是有一定误差的。 instanceof instanceof用于判断某个变量是否是某个对象的实例,返回值为true或false,当typeof无法...原创 2018-07-10 09:12:43 · 169 阅读 · 0 评论 -
前端大杂烩之JS(七)
24. setTimeout和promise的执行顺序 一个浏览器环境(unit of related similar-origin browsing contexts.)只能有一个事件循环(Event loop),而一个事件循环有多个任务队列(Task queue),每个任务都有一个任务源(Task source)。不同的任务队列,有不同的优先级。 用setImmediate和process.n...原创 2018-06-28 08:53:33 · 220 阅读 · 0 评论