JavaScript
欲乘风
这个作者很懒,什么都没留下…
展开
-
JavaScript-03
日期类:var d = new Date();d //Thu Jan 24 2019 19:44:27 GMT+0800 (中国标准时间)d.getFullYear(); //2019d.getMonth(); //0 //月份从0开始 反人类d.getDate(); //24d.getHours(); //19d.getMinute...原创 2019-01-24 23:45:57 · 159 阅读 · 0 评论 -
利用h5 canvas画布操作图片
canvs画布可以直接获取到图像数据,从而进行图像操作,原理很简单,但是实现起来还是会有很多坑。1.本地图片的协议为file://且域名为空,因此在canvs中获取getImageData时会出现跨域问题解决方法:讲图片和网页都放到同一个服务器上即可。可以自己用spring boot快速搭建一个服务器。不过最简单的还是用nginx做一个静态资源服务器。2.想要动态改变canvas画布,...原创 2019-03-23 10:08:56 · 1223 阅读 · 0 评论 -
React梳理
转自:https://www.zhihu.com/question/47686258/answer/107209140虽然原作者的废话挺多的,但是耐心看下去,还是很有收获的。一、引子这是关于一把玄铁重剑,一本经书,和一套轻功步法的故事。让我们先从普通程序猿们的日常工作内容说起,一般来说,程序猿们大部分时间关注的可能不是研发某个具体算法,这是算法工程师/数学家们擅长的东东。程...转载 2019-03-26 18:58:14 · 300 阅读 · 0 评论 -
浏览器缓存
浏览器缓存对于用户来说是个好东西,但是在开发过程中就比较烦了,如果不注意,很容易就让浏览器走了缓存,让自己误以为自己的代码没起作用。所以对于一个合格的前端开发来说,有必要掌握浏览器的缓存机制,减少开发过程中采坑的可能性。我还是一如既往的实践派,先用express做一个简单的服务器来看看效果。const express = require('express');const app =...原创 2019-03-27 19:33:14 · 165 阅读 · 0 评论 -
如何遍历DOM树?数组怎么压缩?
function traverse(node) { var result = []; var nodes = [].slice.apply(node.childNodes); for (let i=0; i<nodes.length; i++) { let n = nodes[i]; if (n.nodeType === 1) { // 元素节点 ...原创 2019-03-28 17:42:58 · 461 阅读 · 0 评论 -
带你翻越JS三座大山之一的原型,原型链和继承
JS和Java一样都是面向对象的语言,不同之处在于采取的实现方式不一样,Java采用了基于Class的方式而被人们熟知 JS选用的基于原型的方式就没那么出名了面向对象的三个基本特征是 封装,继承,多态。而其目的就是为了实现代码复用。那么基于原型的面向对象如何实现代码复用呢?首先要知道两点:JS的函数都有一个prototype属性指向一个对象,这个对象就是原型对象 JS的对象都有一...原创 2019-06-21 00:38:28 · 245 阅读 · 0 评论 -
简单的函数柯里化
function add(a, b, c, d) { console.log(a, b, c, d) console.log(a + b + c + d) } function createCurry(fn) { const args = [].slice.apply(arguments).slice(1) const argsLen = fn...原创 2019-06-21 19:44:20 · 226 阅读 · 0 评论 -
经典排序
最终实现的效果如下:代码在后面贴出,就只有一个html,直接在浏览器运行代码如下:<!DOCTYPE html><html> <head> <title>经典排序算法</title> <meta charset="utf-8"> <style> .show { d...原创 2019-06-26 17:21:01 · 247 阅读 · 0 评论 -
JQuery1.12.4实现的基本原理
参考1.12.4版本的JQuery写了个基本实现原理:不得不说JQuery对原型的应用很巧妙。首先讲清楚JQuery的设计目标:用更简单的方式操作DOM 处理浏览器兼容性问题兼容性不讲,主要是各种if else判断,纯属工作量问题。那么JQuery到底是如何实现简单操作DOM的呢?先来看看,JQuery是如何使用的:JQuery是一个函数,调用JQuery函数返回JQuer...原创 2019-06-26 23:30:42 · 2242 阅读 · 0 评论 -
@babel/polyfill的使用
@babel/polyfill使用的坑还是比较多的:最需要理解的是,babel只会转换E6语法,而不会转换新的api,让新的api生效的方法是使用传统的polyfill,为此需要引入这个模块 安装的时候必须用 --save 保证引用到生产环境而不是开发环境,当然,弄错了,自己手动在package.json中修改也是可以的。 浏览器环境下使用,用script标签引用模块下的polyfill....原创 2019-03-26 09:22:14 · 12231 阅读 · 1 评论 -
一文完全理解JS原型链,实现完美继承
全文没有废话,需字斟句酌需要理解的两个重要概念原型链只是js搜索对象属性的机制,和继承没有本质上的关系,你需要先掌握js是如何在原型链是如何搜索对象属性的 继承的本质是复用父对象的属性,而这些属性分为两类:实例属性和原型属性(位于原型链上的属性)继承的最终目标:子对象的实例属性包括:父对象的实例属性+子对象自定义的实例属性子对象的原型属性:父原型的属性(__proto__和co...原创 2019-03-17 11:23:43 · 283 阅读 · 0 评论 -
JavaScript-04
新特性:设置原型:前一篇有一点没有说的是:__proto__并不是ECMAScript标准,尽管有很多浏览器实现了这个属性。ES5的时候引入了Object.create():var a = {a: 1}; // a ---> Object.prototype ---> nullvar b = Object.create(a); // b --->...原创 2019-01-25 13:19:05 · 196 阅读 · 1 评论 -
JavaScript-05
新特性:ES6:Promise:Promise是一种异步编程的解决方案,我们一直在使用的异步编程的解决方案是:事件+回调函数。这种做法不是不行,只是Promise更加方便而已。先看代码,知道怎么做,再去探究为什么这样做可以。这是我比较喜欢的学习方式。//创建Promise对象var promise = new Promise(function(resolve, reject...原创 2019-01-26 10:46:57 · 229 阅读 · 0 评论 -
JavaScript-06
PS:关于JS的学习,暂时就告一段落了。临近新年,杂事很多。JQuery:之前只知道JQuery是JavaScript框架,就是简化了操作DOM。理解得比较片面。事实上使用JQuery除了简单还有其他的好处:消除浏览器差异:你不需要自己写冗长的代码来针对不同的浏览器来绑定事件,编写AJAX等代码; 轻松实现动画、修改CSS等各种操作。既然如此,那么JavaScript能做的,JQu...原创 2019-01-27 12:36:28 · 333 阅读 · 0 评论 -
JavaScript-01
EMCA(European Computer Manufacturers Association) 欧洲计算机制造商协会EMCAScript,是JavaScript语言的标准,JavaScript可以看作是EMCAScript的实现(虽然是现有JS后有ES)EMCA会在每年的6月份正式发布一次规范的修订,而这次的发布也将作为当年的正式版本。以后的改动基于上一版本进行修改。ES6是15年...原创 2019-01-22 21:22:29 · 181 阅读 · 0 评论 -
JavaScript-02
ES6:...rest: 可变参数arguments的方式虽然想法简单,但是用起来还是比较麻烦的,所以引入了...rest参数,rest是一个数组,如果多传了值,多的值就组成了rest数组,如果没有那么rest并不是undefined而是[]空数组。可以想到rest数组实现非常简单 就是做个装饰类把arguments多余的封装进[]。function abs(x, ...rest){...原创 2019-01-23 12:04:47 · 169 阅读 · 0 评论 -
Vue.js官网教程梳理
Vue.js的官网教程很详细,这里做一个关键点梳理,方便查阅。基础:Vue实例:创建一个Vue实例 只有当实例被创建时 data 中存在的属性才是响应式的 Vue实例自带有$开头的实例属性和方法 Vue还有生命周期钩子函数,就是生命周期各个阶段会执行的函数模板语法:Vue.js模板都是合法的html 插值(把Vue实例中的值插入的html中) 这个值可以是文本 原始HTM...原创 2019-02-17 22:10:20 · 722 阅读 · 0 评论 -
Node.js由简入繁
目标是由最简单的东西开始,一步一步理清楚Node.js的MVC架构的一般骨架。一,模块1.创建模块//first.jsvar s = 'Hello';function greet(name){ console.log(s + ',' + name + '!');}//把模块中需要对外提供的功能暴露出去module.exports = { greet: gree...原创 2019-02-14 09:02:05 · 252 阅读 · 0 评论 -
前端环境安装
使用vue-cli快速搭建脚手架的过程中,会涉及各式各样的工具,本文仅记录下来每个工具的作用。Node.js是基于Chrome V8引擎的JavaScript运行环境,为JavaScript提供了服务端运行的能力。windows上安装:从官网下载安装文件 使用安装文件安装,默认会选中安装npm并且会添加PATH路径安装完成后:node.js会安装在自选的目录下 npm默认...原创 2019-02-26 14:45:12 · 8361 阅读 · 0 评论 -
redux没有魔法
redux状态管理真得没有任何魔法redux本身没有难度,很清晰第一个难点在于和react集成,也不是难,主要是很多人搞不清楚react-redux和redux的关系异步请求本身有些难点,主要是因为很多人搞不清楚ES6的语法,也不知道中间件的概念,或者更甚都不知道异步。弄清楚基本概念 和react没有半毛钱关系 直接写在html都行文本对象action纯函数reducersto...原创 2019-07-10 00:18:16 · 290 阅读 · 0 评论