随笔分类 - javascript
摘要:实现防抖(debounce) 防抖函数的设计思路是:不允许高频率地调用事件处理程序,使用延时程序延时执行事件处理程序,如果已经存在待执行的时间处理程序函数,则重新计时。 以监听scroll为例,当滚轮事件触发频率低于1000ms时,不调用事件处理程序(删掉延迟触发函数的timer),当高于1000m
阅读全文
摘要:使用!+'\v1'可以快速判断一个浏览器是否是IE9以下的浏览器。 ##原理 IE9以下版本的IE浏览器(不包括IE9)会将'\v'解析为v字符串,'\v1'则解析为'v1'字符串,通过+号进行number类型的转换,转换结果是NaN,通过!号进行Boolean类型转换,转换结果是true; 现代浏
阅读全文
摘要:##创建类 通过class关键字进行创建 ##类的数据类型就是函数,类本身指向构造函数 class Bar { doStuff() { console.log('stuff'); } } var b = new Bar(); b.doStuff(); //stuff console.log(type
阅读全文
摘要:##定义 object.assign用于对象的合并,将源对象(source)的所有可枚举属性复制到目标对象(target)中 let targetObj = { a: 1 }; let sourceObj1 = { b: 2 }; let sourceObj2 = { c: 3 }; Object.
阅读全文
摘要:##...arr 使用三个点可以将数组转为以逗号分隔的参数序列。 ###example1.将数组转化为以逗号分隔的参数序列 const ARR1 = [1, 2, 3, 4, 5]; console.log(...ARR1); //1 2 3 4 5 ###example2.将多个数组进行合并 co
阅读全文
摘要:DATA URL简介及DATA URL的利弊
阅读全文
摘要:箭头函数和其它函数不同的是:箭头函数并不创建arguments对象和this对象。 箭头函数的this值来自于作用域链。同其它参数一样,向上查找。 function foo() { return () => { console.log(this.a); } } var a = 77; var obj
阅读全文
摘要:function foo(arg1, arg2, arg3) { console.log(arg1); console.log(arg2); console.log(arg3); console.log(this.a); } var obj1 = { a: 77 } foo.call(obj1, 1
阅读全文
摘要:创建一个空对象 创建它的原型对象 将构造函数this值绑定到这个对象上 为这个对象创建属性 返回对象的地址
阅读全文
摘要:js基础梳理-究竟什么是变量对象,什么是活动对象?
阅读全文
摘要:function foo() { var a = 7; console.log(a);//7 console.log(b);//b is not defined (function b() { a = 77; })(); console.log(a);//77 } foo(); var c=func
阅读全文
摘要:##LHS查询与RHS查询 L与R分别代表左侧与右侧,即对赋值操作的左侧与右侧出现的变量进行查询。 以代码var a=b;为例,js引擎会执行如下步骤: js引擎会对赋值操作左侧的a变量进行LHS查询————即在当前作用域下查询变量a是否存在,如果存在,则忽略var声明,得到变量a的位置;如果不存在
阅读全文
摘要:##定义 闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式是在一个函数中创建另一个函数 ##函数是怎样创建的 js在执行代码前会对代码进行预处理。例如用var声明变量和用function声明函数,这一阶段同样包括声明提升的情况。当预处理发现有函数声明时,就会创建该函数。但预处理会跳
阅读全文
摘要:##arguments ###argument对象是什么 arguments是用来保存函数实参的对象,它在函数创建时会自动创建,在函数调用时会初始化。它保存有实参的值,callee属性(函数的指针),length属性(传入实参的数量) ###在传入实参情况下arguments对象与形参的对应关系 f
阅读全文
摘要:var person = { name: 'Nick' }; console.log(person.name); console.log(person); person.name='Jane'; console.log(person.name); console.log(person); 经测试在c
阅读全文
摘要:##定义 递归函数是在一个函数通过名字调用自身的情况下构成的 ##关于arguments.callee arguments.callee是一个指向正在执行函数的指针,在函数内部调用这个方法会直接指向所调用的函数本身。(它是指针,仅指向函数本体,调用函数要加括号,调用并传参在括号内传参) functi
阅读全文
摘要:##执行环境 ###执行环境的定义 执行环境(execution context)的作用是定义了变量或函数的访问数据的范围.每个执行环境都有一个变量对象(variable object),环境中定义的所有变量和函数都保存在这个对象中. (相当于宇宙-银河系-太阳系-九大行星的关系,层层包裹) ###
阅读全文
摘要:在向函数传递参数的过程中,参数的传递实际上是一种复制变量的操作.变量因为分为基本类型值和引用类型值,故在传递参数这一过程中有不同的表现.但终究它们都是按值传递的. ##基本类型值与引用类型值的复制 栈内存(stack)用于保存基本类型数据和引用类型数据的指针.它的读取方式是先进后出(LIFO las
阅读全文
摘要:菜鸟教程:window.getComputedStyle() 方法的使用 ##getComputedStyle方法的使用 getComputedStyle方法是window对象下的方法,它接收element的值并获取它的最终属性. <style> .div1 { width: 150px; heig
阅读全文
摘要:[Toc] 所有的构造函数都是构造函数Function的实例(允许该构造函数直接通过constructor属性访问构造函数Function) 所有的原型对象都可以近似看成构造函数Object的实例(不允许该原型对象直接通过constructor属性访问构造函数Object) 示例: 判断构造函数、实
阅读全文