随笔分类 -  js

摘要:前置: 默认情况下, 函数的返回值是 undefined (即没有定义返回值)。 new 操作符 js 中的 new 操作符,可以是我们像 java 一样,获得一个新的对象,例如: function Person() { this.heart = 'red'; } let per = new Per 阅读全文
posted @ 2019-05-29 13:24 shiweiqianju 阅读(1217) 评论(4) 推荐(0) 编辑
摘要:原文中部分源码来源于:JS Array.reduce 实现 Array.map 和 Array.filter Array 中的高阶函数 map, filter, reduce map() - 映射 currentValue, 必须,当前的元素值; index, 可选,当前元素值的索引; array, 阅读全文
posted @ 2019-05-17 16:20 shiweiqianju 阅读(11329) 评论(0) 推荐(0) 编辑
摘要:原文:函数防抖和节流; 序言: 我们在平时开发的时候,会有很多场景会频繁触发事件,比如说搜索框实时发请求,onmousemove, resize, onscroll等等,有些时候,我们并不能或者不想频繁触发事件,咋办呢?这时候就应该用到函数防抖和函数节流了! 准备材料: <div id="conte 阅读全文
posted @ 2019-05-07 19:22 shiweiqianju 阅读(59354) 评论(7) 推荐(12) 编辑
摘要:原文:最后一次搞懂 Event Loop 自打 ES 6 推出 Promise 改善了 js 的异步编程之后,eventloop 也越来越多地出现在视野当中。借用大佬们的话:“Event Loop 是 JavaScript 异步编程的核心思想,也是前端进阶必须跨越的一关。同时,它又是面试的必考点。” 阅读全文
posted @ 2019-04-28 14:41 shiweiqianju 阅读(335) 评论(0) 推荐(0) 编辑
摘要:我们知道,每个函数在调用的时候会产生一个执行上下文环境,而这个执行上下文环境中包含了诸如 this 等等信息。即当我们调用函数的时候,内部的 this 已经明确地隐式绑定到了某一个对象上。如果我们希望更换 this 的指向,我们该如何更改? call/apply/bind 这三个函数能够满足我们的需 阅读全文
posted @ 2019-04-24 17:10 shiweiqianju 阅读(339) 评论(0) 推荐(0) 编辑
摘要:参考:Async/await学习 es 7 提供了对 promise 对象的更好的操作,省去了很多丧心病狂的链式异步请求,promise 是回调地狱的福音,而 Async/Await 则是 promise 的天使。 另外,关于 event-loop ,请移步 Event-Loop In Js Awa 阅读全文
posted @ 2019-04-16 16:02 shiweiqianju 阅读(790) 评论(0) 推荐(0) 编辑
摘要:背景: 淘宝、天猫等电商网站浏览图片时可以查看大图的功能; 思路: 思路很简单,两张图片,一张较小渲染在页面上,一张较大是细节图,随鼠标事件调整它的 left & top; 需要的知识点: onmouseover onmouseout onmouseenter js event对象中的各类坐标 源码 阅读全文
posted @ 2019-02-25 13:42 shiweiqianju 阅读(347) 评论(0) 推荐(0) 编辑
摘要:写在前面: 最近在看 vue 的轮播插件的时候想起以前也写过一个小 demo,翻当初的代码的时候脑中一直冒出“事件委托”这样的概念,于是顺手查了点资料,重构了下这个demo,权当复习。 何为事件委托? 从字面意思上理解就是把事件委托给其他元素,由他们代为执行。 那为什么需要其他元素代为执行事件回调呢 阅读全文
posted @ 2019-02-21 13:34 shiweiqianju 阅读(228) 评论(0) 推荐(0) 编辑
摘要:原文: 1.记录一个面试题目 2.一道常被人轻视的前端JS面试题 首先是题目: 答案: 分析及demo: 先看上半部的一系列声名和赋值,首先定义了一个叫Foo的函数,之后为Foo创建了一个叫 getName 的 静态属性 存储了一个匿名函数,之后为 Foo 的 原型对象 新创建了一个叫 getNam 阅读全文
posted @ 2019-02-20 13:25 shiweiqianju 阅读(464) 评论(0) 推荐(0) 编辑
摘要:参考文章: 1.js几种数组遍历方式以及性能分析对比 2.javaScript遍历对象、数组总结 首先是数组中可以使用的 1.for 循环 最基本的循环工具,常用于数据循环。据说性能相当不错... 2. 优化版的 for 循环 使用变量将数组长度缓存起来,在数组较长的时候优化效果明显。因此,性能最优 阅读全文
posted @ 2019-02-11 10:38 shiweiqianju 阅读(189) 评论(0) 推荐(0) 编辑
摘要:常用的一些字符串操作 API 整理 1.str.charAt(index)、str.charCodeAt(index) - 返回指定位置的字符 / 字符编码(0~65535) index - 必须,表示字符串中某个位置的数字,即字符在字符串中的下标,从 0 开始。 charAt(index),如果参 阅读全文
posted @ 2019-01-10 14:58 shiweiqianju 阅读(5053) 评论(0) 推荐(0) 编辑
摘要:原文:深入理解javascript原型和闭包(完结) JavaScript 中的难点和重要点,排除知识体系之外的 bug。本篇是学习笔记,记录个人理解。 一、一切皆对象:一切(引用类型)都是对象,对象是属性的集合。 (undefined, number, string, boolean, null) 阅读全文
posted @ 2018-08-12 10:56 shiweiqianju 阅读(774) 评论(0) 推荐(0) 编辑
摘要:非严格模式下, js 中的 this, 在任何时候都能够打印出具体的值。 其取值的核心规则是:在 es 5 标准下,函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了。 this 的取值,分为四种情况: 一、构造函数 构造函数,其实就是 用来 new 对象的函数(首 阅读全文
posted @ 2018-08-11 14:48 shiweiqianju 阅读(283) 评论(0) 推荐(0) 编辑
摘要:原文: 1.深入理解javascript原型和闭包——prototype原型 2.三张图搞懂JavaScript的原型对象与原型链 打开浏览器控制台,任意定义一个对象,打印出来后,会发现有最后一定有一个默认属性 “__proto__”,这是 js 的设计思路,类似于 java 中的继承。 注意:在本 阅读全文
posted @ 2018-08-04 15:28 shiweiqianju 阅读(483) 评论(0) 推荐(0) 编辑
摘要:es 6 大幅度优化了模块化编程的规范。 写在前面:在 es6 之前,说起 js 的模块化,一般都避不开 CommonJs 和 AMD 两种方案。这两种方案,前者应用于服务器,后者应用于浏览器。而 es 6 通过 export 和 import 这两个关键字,完全取代上面两种方案,且使用起来更简单。 阅读全文
posted @ 2018-06-09 11:29 shiweiqianju 阅读(1222) 评论(0) 推荐(0) 编辑
摘要:一、含义 是异步编程的一种解决方案,es 6 将其变成了标准。 简单的说是一个容器,里面保存了某个未来才会结束的事件(通常是一个异步操作)的结果。语法上, Promise 是一个对象,从它可以获取异步操作的消息。 Promise 对象有两个特点: 1.状态,Promise 对象的状态不受外界影响。一 阅读全文
posted @ 2018-06-08 17:22 shiweiqianju 阅读(208) 评论(0) 推荐(0) 编辑
摘要:Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以是一种“元编程”,即对编程语言进行编程。 简单地理解,就是在目标对象之前假设一层“拦截”,外界对改对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤。基本就想字面意思:代理。 1.概述 es 6 原生提 阅读全文
posted @ 2018-06-08 14:52 shiweiqianju 阅读(1862) 评论(0) 推荐(0) 编辑
摘要:本篇中学习并记录可能会比较常用的 api ,详细请自行查找相关资料。 一、字符串的拓展 es 6 加强了对于 Unicode 的支持。javascript 允许采用 \uxxxxx 的方式表示一个字符,其中 xxxx 表示字符的 Unicode 码点。所以这就有范围限制了(\u0000 ~ \uFF 阅读全文
posted @ 2018-06-06 17:08 shiweiqianju 阅读(651) 评论(0) 推荐(0) 编辑
摘要:变量的解构赋值 es 6 允许按照一定的模式,从数组和对象中提取值,然后对变量进行赋值,这被称之为解构; 一.数组的解构赋值 最基本写法: 更多的写法: 二、对象的解构赋值 1.标准写法: 简写: 注意: 对象的结构不需要像数组那样注重顺序,只需要注意保证变量(等号左边)名与对象属性(等号右边)名相 阅读全文
posted @ 2018-06-05 16:22 shiweiqianju 阅读(867) 评论(0) 推荐(0) 编辑
摘要:let 和 const let 声明 (一)基本用法 let 声明的变量只在块级作用域内有效,出了该块则报错,最常见且适合的地方在 for 循环中: 上面的 i 通过 var 方式声明,(循环次数内)全局有效且只有一个,故每次循环结束后, i 的值会被更新,从而导致在完成所有循环后, a 数组中所有 阅读全文
posted @ 2018-06-05 11:04 shiweiqianju 阅读(632) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示