随笔分类 - JavaScript
摘要:一、语法 arr.reduce(function(prev,cur,index,arr){ ... }, init); 其中, arr 表示原数组; prev 表示上一次调用回调时的返回值,或者初始值 init; cur 表示当前正在处理的数组元素; index 表示当前正在处理的数组元素的索引,若
阅读全文
摘要:共同点: 不同点: 1.forEach(): 没有返回值,即返回值为undefined 参数:value数组中的当前项, index当前项的索引, array原始数组; 数组中有几项,那么传递进去的匿名回调函数就需要执行几次; 理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行
阅读全文
摘要:JS-防抖和节流 在进行窗口的resize、scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用debounce(防抖)和throttle(节流)的方式来减少调用频率,同时又不影响实际效果。 函数防抖 函数防抖(debou
阅读全文
摘要:懒加载: 1.什么是懒加载? 懒加载也就是延迟加载。当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1*1px图片的路径(这样就只需请求一次,俗称占位图),只有当图片出现在浏览器的可视区域内时,才设置图片正真的路径,让图片显示出来。这就是图片懒加载。 2.为什么要使用懒
阅读全文
摘要:indexOf() lastIndexOf()
阅读全文
摘要:splice-删除 splice-插入 splice-替换 综合对比:
阅读全文
摘要:for in用来循环对象中的属性,但是通过for in循环输出的属性名的顺序是不可测的。具体来说,所有属性都会被返回一次,但返回的先后次序可能会因浏览器而异。 ES5之前:如果表示要迭代的对象的变量值为null或undefined,for in语句会抛出错误; ES5之后:这种情况不再抛出错误,而只
阅读全文
摘要:对象{ }要用for in遍历对象内的属性,通过hasOwnProperty判断属性是否是对象本身的,而不是原型上的 数组[ ]可以通过forEach来遍历
阅读全文
摘要:浅拷贝 浅拷贝是拷贝第一层的拷贝 使用 解决这个问题。 通过展开运算符 来实现浅拷贝 深拷贝 简单的做法: 但是该方法也是有局限性的: 会忽略 会忽略 会忽略函数 不能解决循环引用的对象 (会抱错) 如果你所需拷贝的对象含有内置类型并且不包含函数,可以使用 " " 自封装深拷贝 思路: 1. 使用f
阅读全文
摘要:"【V8引擎】浅析Chrome V8引擎中的垃圾回收机制和内存泄露优化策略" 垃圾回收机制 如何判断回收内容 如何确定哪些内存需要回收,哪些内存不需要回收,这是垃圾回收期需要解决的最基本问题。我们可以这样假定, 一个对象为活对象当且仅当它被一个根对象 或另一个活对象指向 。根对象永远是活对象,它是被
阅读全文
摘要:作用域相关问题 下面的代码打印什么内容,为什么? b函数(函数表达式定义函数)是一个相当于用const定义的常量,内部无法进行重新赋值,如果在严格模式下,会报错"Uncaught TypeError: Assignment to constant variable." 简单改造下面的代码,使之分别打
阅读全文
摘要:this this的指向有哪几种情况? this代表函数调用相关联的对象,通常页称之为执行上下文。 1. 作为函数直接调用,非严格模式下,this指向window,严格模式下,this指向undefined; 2. 作为某对象的方法调用,this通常指向调用的对象。 3. 使用apply、call、
阅读全文
摘要:从一道题浅说 JavaScript 的事件循环 ======================= 原文链接: https://github.com/Advanced Frontend/Daily Interview Question/issues/7 注:本篇文章运行环境为当前最新版本的谷歌浏览器(7
阅读全文
摘要:事件机制 事件触发三阶段 事件触发有三个阶段: window 往事件触发处传播,遇到注册的捕获事件会触发 传播到事件触发处时触发注册的事件 从事件触发处往 window 传播,遇到注册的冒泡事件会触发 事件触发一般来说会按照上面的顺序进行,但是也有特例,如果给一个 body 中的子节点同时注册冒泡和
阅读全文
摘要:为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。 JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以
阅读全文
摘要:正则表达式 创建正则表达式 1. 使用一个正则表达式字面量 2. 调用RegExp对象的构造函数 特殊字符 ^ 匹配输入的开始 $ 匹配输入的结束 \ 0次或多次 {0,} \+ 1次或多次 {1,} ? 0次或者1次 {0,1}。 用于先行断言 如果紧跟在任何量词 、 +、? 或 {} 的后面,将
阅读全文
摘要:JS 变量类型 JS中有 6 种原始值,分别是: 1. boolean 2. number 3. string 4. undefined 5. symbol 6. null 引用类型: 1. 对象 2. 数组 3. 函数 JS中使用typeof能得到哪些类型? 其中一个奇怪的 null,虽然是基本变
阅读全文
摘要:函数 JS运行分三步: 语法分析(通篇扫描是否有语法错误),预编译(发生在函数执行的前一刻),解释执行(一行行执行)。 预编译执行分五步: 一、创建AO对象(Activation Object 执行期上下文) 二、找形参和变量声明,将变量和形参名作为AO属性名,值为undefined. 变量声明提升
阅读全文
摘要:创建对象的方法 字面量创建 构造函数创建 Object.create() 原型 JavaScript 的所有对象中都包含了一个 内部属性,这个属性所对应的就是该对象的原型 JavaScript 的函数对象,除了原型 之外,还预置了 prototype 属性 当函数对象作为构造函数创建实例时,该 pr
阅读全文

浙公网安备 33010602011771号