
JAVASCRIPT
文章平均质量分 56
小皮咖
希望成为一位技术大咖!
展开
-
apply、call和bind的区别
在JS中,这三者都是用来改变函数的this对象的指向的,他们有什么样的区别呢?在说区别之前还是先总结一下三者的相似之处:都是用来改变函数的this对象的指向的。第一个参数都是this要指向的对象。都可以利用后续参数传参。 那么他们的区别在哪里的,先看一个例子。 var xw = { name : "小王", gender : "男", age转载 2017-11-01 17:37:12 · 328 阅读 · 0 评论 -
underscore 诞生记(一)—— 基本结构搭建
1. 简介underscore 是一款成熟可靠的第三方开源库,正如 jQuery 统一了不同浏览器之间的 DOM 操作的差异,让我们可以简单地对 DOM 进行操作,underscore 则提供了一套完善的函数式编程的接口,让我们更方便地在 JavaScript 中实现函数式编程。jQuery 在加载时,会把自身绑定到唯一的全局变量 $ 上,underscore 与其类似,会把自身绑定到唯一的...原创 2019-04-30 10:54:55 · 395 阅读 · 0 评论 -
daily-question-02(前端每日一题02)
在这里记录着每天自己遇到的一道印象深刻的前端问题,以及一道生活中随处可见的小问题。强迫自己形成积累的习惯,鞭挞自己不断前行,共同学习。Github 地址2019/04/15 - 2019/04/211. 写一个乱序函数 ?遍历数组元素,然后将当前元素与以后随机位置的元素进行交换。 function shuffle(a) { for (let i = a.length; i; ...原创 2019-04-30 10:54:11 · 389 阅读 · 0 评论 -
daily-question-01(前端每日一题01)
在这里记录着每天自己遇到的一道印象深刻的前端问题,以及一道生活中随处可见的小问题。强迫自己形成积累的习惯,鞭挞自己不断前行,共同学习。Github 地址2019/04/01 - 2019/04/071.为何 [] == ![] 结果为 true,而 {} == !{} 却为 false首先了解一下类型转化的规则:1、如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——fal...原创 2019-04-30 10:53:21 · 483 阅读 · 0 评论 -
一款轮播组件的诞生
1. 前言早在几个月前,就想自己动手写个轮播图组件,因此也看了许多文章,断断续续过了几个月,今天终于有时间腾出手来给此插件做个总结,因此有了这篇文章。话不多说,先上 Demo, 效果如下:2. HTML and CSS本文不讨论html,css的实现方式,直接贴上代码<!DOCTYPE html><html> <head> <me原创 2018-12-28 17:46:24 · 288 阅读 · 0 评论 -
ES6 手写一个“辨色”小游戏
1. 前言依稀记得几年前朋友圈流行的辨色小游戏,找出颜色不同的矩形。前些天突发奇想,打算自己手写一个类似的游戏,话不多说,先上 Demo . –项目源码本实例基于 ES6 实现,并兼容 ie9及以上。2. 项目结构index.html index.css index.js本文主要讲述如何使用 js 实现功能,html css 不在此范围。直接上代码。<!--index.html-...原创 2018-09-19 15:09:31 · 682 阅读 · 0 评论 -
Vue 编写一个长按指令插件
1. 如何编写 Vue 插件在以往的 Vue 项目开发过程中,我们使用插件的方法是Vue.use(plugin)。如: import filters from "./filter/filters";Vue.use(filters);plugin 为 Object 对象,需内置一个install()方法方可使用。该方法第一个参数为Vue对象,其余参数由使用者传入决定。plu...原创 2018-09-06 17:16:46 · 816 阅读 · 0 评论 -
Webpack4 搭建 Vue 项目
1. 前言由于 Parcel 打包工具的影响,webpack4 也追求零配置搭建项目。而前阵子出现的 vue-cli 3.0也是基于 webpack4 零配置的思想创建的。对于一些习惯webpack3 的开发者难免有些不习惯。本文就带你绕过 vue-cli,用 webpack4 一步步搭建 vue 项目。注:(本文讲述的是webpack4基础配置,文章有点长,请耐心看完。或者直接查看项目源...原创 2018-08-23 17:49:20 · 3129 阅读 · 12 评论 -
如何开发脚手架
开发一个简单的脚手架工具前言像我们熟悉的 vue-cli,create-react-app 等脚手架,只需要输入简单的命令 vue init webpack project,即可快速帮我们生成一个初始项目。在实际工作中,我们可以定制一个属于自己的脚手架,来提高自己的工作效率。为什么需要需要脚手架?减少重复性的工作,不再需要复制其他项目再删除无关代码,或者从零创建一个项目和文件...原创 2018-07-27 16:18:21 · 4183 阅读 · 3 评论 -
JS 数组去重方法整理
原创 2018-05-08 18:09:28 · 297 阅读 · 0 评论 -
css与 js动画 优缺点比较
JS动画缺点:(1)JavaScript在浏览器的主线程中运行,而主线程中还有其它需要运行的JavaScript脚本、样式计算、布局、绘制任务等,对其干扰导致线程可能出现阻塞,从而造成丢帧的情况。(2)代码的复杂度高于CSS动画优点:(1)JavaScript动画控制能力很强, 可以在动画播放过程中对动画进行控制:开始、暂停、回放、终止、取消都是可以做到的。(2)动画效果比...原创 2017-09-27 23:17:49 · 1065 阅读 · 0 评论 -
Promise 详解
所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。Promise 是一个对象,从它可以获取异步操作的消息。function promise () { new Promise(() => { setTimeout(() => { console.log(100) }...原创 2018-04-20 12:56:39 · 276 阅读 · 0 评论 -
JavaScript 之数组方法总结
数组构造var arr = new Array() | var arr = []var arr = new Array(20) // 20为数组长度,较少用数组的操作只操作数组,返回的是数组长度,改变的是数组的内容数组的push()方法在数组的尾部添加元素。如:var arr = [1,5,6]arr.push(8) | arr.push(8,10)// 输出 1,5,6,8 | 1原创 2017-09-24 21:04:55 · 421 阅读 · 0 评论 -
使用prototype自定义数组方法
题目如何实现下列代码:[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]解决方法使用array的prototype属性,自定义duplicator()方法,js代码如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title>原创 2017-09-28 15:14:26 · 620 阅读 · 0 评论 -
javascript 的正则表达式
定义 var reg = new RegExp("hello")或 var reg = /hello/var reg = new RegExp(/hello/)但是不能写成 var reg = new RegExp('/hello/') 会报错1.test方法RegExp.prototype.test()——用来测试字符串中是否含有子字符串/hello/.test("abchello"); //原创 2017-10-12 14:33:20 · 375 阅读 · 0 评论 -
underscore 诞生记(二)—— 链式调用与混入(mixin)
上篇文章讲述了 underscore 的基本结构搭建,本文继续讲链式调用与混入。如果你还没看过第一篇文章,请点击 “underscore 诞生记(一)—— 基本结构搭建”链式调用在 JQuery 中,我们经常使用到链式调用,如:$('.div') .css('color', 'red') .show();那么在 underscore 中,是否支持链式调用呢?答案是支持的,只不...原创 2019-04-30 10:55:51 · 339 阅读 · 0 评论