![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 52
还是那个zpp
这个作者很懒,什么都没留下…
展开
-
解决canvas小游戏设置画布居中时,js中报错的问题
楼主在复现这个开源的小游戏时,发现了在外挂.js文件时,无法设置画布居中,总是会报错。(Uncaught TypeError: Cannot read property ‘getContext’ of null)教学代码请点击这里:实验楼小游戏教学链接html代码如下图:<!DOCTYPE html><html lang="en"><head> &...原创 2018-09-25 17:05:30 · 413 阅读 · 0 评论 -
JS中的提升
1. 什么是提升 对于JS引擎,无论作用域中的声明出现在什么地方,都将在代码本身被执行前首先进行处理。即所有声明(变量和函数)都会被“移动”到各自作用域的最顶端,该过程称为“提升”。 例如,var a = 2; 可以看做是一个声明,但实际上对于JS引擎来说,是两个单独的声明,var a 是编译阶段的任务,a = 2是执行阶段的任务。a = 2;var a;console.log(a)...原创 2019-06-25 20:01:11 · 1130 阅读 · 1 评论 -
JS中的函数柯里化
1. 概念”函数柯里化”是指将多变量函数拆解为单变量的多个函数的依次调用, 可以从高元函数动态地生成批量的低元的函数。简单讲:就是利用函数执行,可以形成一个不销毁的私有作用域,把预先处理的内容都存在这个不销毁的作用域里面,并且返回一个函数,以后要执行的就是这个函数。举个栗子:// 常规的add函数function add(x, y) { return x + y}// Cur...原创 2019-06-30 22:15:47 · 6850 阅读 · 1 评论 -
初探敏捷开发
实习过程中在公司了解到了一些软件开发的内容,着重使用的是敏捷开发模式,也就是敏捷工艺。我结合学到的内容,以及自己查阅的资料,做一下小小的总结:1. 概念敏捷开发(scrum)是一种软件开发的流程,强调快速反应、快速迭代、价值驱动。(Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作;运用该流程,你就能看到你团队高效的工作。)敏捷开发适用于竞争激烈,快速变化的市场。 敏捷的...原创 2019-07-06 22:34:37 · 303 阅读 · 0 评论 -
SVN使用学习笔记
一、SVN概念 SVN(Subversion),即版本控制系统。SVN是一个跨平台的软件,支持大多数常见的操作系统。Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository)中。它会记住每一次文件的变动。这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史。SVN是一个通用的系统,可用来管理任何类型的文件,其中包括了程序源码。二、TortoiseS...原创 2019-07-16 11:31:18 · 250 阅读 · 0 评论 -
微信小程序解析XML数据
最近在工作中做微信小程序,遇到了后台接口返回的数据格式是XML的问题,而微信小程序不支持DOM,不能直接用DOMParser去解析,所以只能用第三方库去解析了。下载xmldom库:https://github.com/jindw/xmldom将dom.js、dom-parser.js、sax.js,entities.js拷贝微信小程序需要的文件夹下在需要使用的js页面引入import ...原创 2019-07-26 16:10:55 · 3831 阅读 · 1 评论 -
使用Object.prototype.toString.call()进行数据类型的检测
一、引言 首先为什么要用这种方法来判断数据类型呢?我用typeof不好吗?举个栗子:用 typeof 判断一个对象变量,null 的结果也是 object,数组的结果也是 object,这样并不正确。 typeof操作符返回一个字符串,表示未经计算的操作数的类型;该运算符数据类型对应列表如下图所示:typeof undefined = undefinedtypeof Null = ob...原创 2019-08-06 17:11:09 · 805 阅读 · 1 评论 -
华为机试题练习(一)
1.写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。var str = readline().toLowerCase();var item = readline().toLowerCase();var count = 0;for(var i = 0; i < str.length; i++){ if(str[...原创 2019-08-13 20:33:12 · 7637 阅读 · 2 评论 -
华为机试题练习(二)
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输入5 7输出35while(line = readline()){ var arr = line.split(' ').map(function(item){ return parseInt(item); }); var a = pa...原创 2019-08-19 19:30:32 · 1129 阅读 · 0 评论 -
初识PWA
一、应用背景 PWA(Progressive Web App)概念的提出,主要是针对原生APP的,目前原生APP的缺点:昂贵开发成本;软件上线,版本更新都需要发布到不同的商店,并通过审核; 导致了有些APP用户可能使用频率很少,但是却不得不去在应用商店中下载庞大安装包,或者可能一段时间不使用以后,随着版本的更新,也不得不去重新更新并安装。 而PWA技术的作为web应用,其天生优...原创 2019-08-28 16:38:22 · 360 阅读 · 1 评论 -
HTTP与CORS小结
一、HTTP1. 基本概念http超文本传输协议。请求报文:请求行请求头请求正文/主体(可选)响应报文:响应行响应头响应正文/主体(可选)请求行请求动作(方法):get、post、put……请求url协议/版本请求头随请求一起携带的附加数据accept:当前请求期望访问的数据类型(MIME)content-type:指示服务器发送的主体内容...原创 2019-06-15 16:28:53 · 827 阅读 · 0 评论 -
实现vdom的diff算法总结
一、前言 前端主流框架 vue 和 react 中都使用了虚拟DOM(virtual DOM)技术,因为渲染真实DOM的开销是很大的,性能代价昂贵,比如有时候我们修改了某个数据,如果直接渲染到真实dom上会引起整个dom树的重绘和重排,而我们只需要更新修改过的那一小块dom而不要更新整个dom。diff算法能够帮助我们。 diff算法源自于:linux的基本命令,对比文本。vue和reac...原创 2019-05-15 21:33:28 · 1071 阅读 · 0 评论 -
JS动画特效(一)
一、匀速运动封装一个匀速运动的animate方法,要用到定时器,先清除定时器,一个盒子只能有一个定时器,这样的话,不会和其他盒子出现定时器冲突。而定时器本身会成为盒子的一个属性。 //ele为要操作的对象,target为要运动到的位置 function animate(ele,target){ clearInterval(ele.timer); //我们要求盒...原创 2018-09-21 10:44:47 · 13281 阅读 · 1 评论 -
关于JS闭包的理解
一、概念的理解 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 这个概念看起来稍显复杂,我之前也接触过离散数学上闭包的概念,当时就不咋懂。(博主研究生专业研究的是偏数学的东西。。。)在JS红宝书上是这样定义的:“闭包是指有权访问另一个函数作用域中的变量的函数。” 由于JS中变量的分为全局变量和局部变量,因此作用域也不同,在函数外...原创 2018-10-26 21:52:27 · 138 阅读 · 0 评论 -
gulp使用入门
一、gulp是什么?gulp是一款主流的前端自动化构建工具。gulp的用处:1.搭建web服务器。2.文件保存时自动重载浏览器。3.使用预处理器如Sass、Less。4.优化资源,比如压缩css、JavaScript,重命名,压缩图片等。 下面划重点了!那么gulp和webpack有啥区别呢?同样都是自动化构建工具。简单地讲,gulp是基于流的自动化构建工具,处理压缩代码很方便,...原创 2018-11-26 21:03:23 · 125 阅读 · 0 评论 -
js中关于数组排序问题arr.sort(function(a,b){})
刷题的时候,遇到这么一个问题: 请填充代码,使mySort()能使传入的参数按照从小到大的顺序显示出来。function mySort() { var tags = new Array();//使用数组作为参数存储容器 请补充你的代码 return tags;//返回已经排序的数组}var result = mySort(50,11,16,32,24,99,57,...原创 2019-03-09 15:42:20 · 9007 阅读 · 0 评论 -
JS动画特效(二)
一、星空闪烁效果图如下,实际效果是星星动态的闪烁。可用作网页背景等。代码如下:html只需要一个盒子容器,并且设置页面背景为黑色即可。<body style="background:#000"> <div id="app"></div></body>其中,用作星星的图片是:大小为49*7px,共有7段内容。第一步,要确定星星出...原创 2019-03-14 16:46:53 · 845 阅读 · 0 评论 -
Javascript实现常用数据结构与算法(二)
1.排序算法常见的排序算法可以分为两类,基本排序算法和高级排序算法。本文前三个是基本排序算法,后三个是高级排序算法。高级排序算法适用于数据集较大的情况。其他的算法诸如基数排序、堆排序等随后补充。需要仔细掌握每种算法的思想,并且手撕代码,在不同情况下熟练运用。1.1 冒泡排序function bubbleSort(arr) { var len = arr.length; for (v...原创 2019-04-17 22:06:21 · 165 阅读 · 1 评论 -
块级格式化上下文(BFC)
之前面试的时候问到过这个知识点,当时答得并不是很好。平时写样式的时候偶尔还是会用到的,总结一下。含义BFC 即 Block Formatting Contexts (块级格式化上下文),它属于定位方案的普通流。它是一个独立的渲染区域。具有 BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且 BFC 具有普通容器所没有的一些特性。通俗一点来讲,可...原创 2019-05-08 22:10:56 · 105 阅读 · 0 评论 -
服务端渲染和客户端渲染的选择
在学习node.js模板引擎渲染的过程中,发现一个问题,为什么一些场景下会使用服务端渲染?客户端渲染:客户端向服务端发送请求,请求一次 html页面。服务端返回页面(页面字符串)。客户端收到响应页面,从上到下依次解析,当有需要渲染的css、js文件,则再次发起ajax请求。服务端返回相应的数据和文件。客户端拿到ajax响应结果,进行模板引擎渲染,将数据渲染为响应页面。服务端渲染:...原创 2019-05-06 21:56:21 · 371 阅读 · 0 评论 -
理解http运营商劫持与防御机制
可能大家都有过上网看着看着,突然就被重定向到不知莫名其妙的页面,各种“屠龙宝刀点击就送”、“是兄弟就砍我”之类的内容。就算不是页面跳转,网页也有可能被插入额外的广告,例如电信运营商的套餐服务等。面试的时候也被问到了这类劫持是发生在什么环节。结果没有答上来。。。一、运营商劫持例如下图这种莫名其妙的页面部分,就是被运营商劫持了http请求,加入了一些流氓的广告链接等。运营商劫持主要分两种:...原创 2019-09-17 11:50:06 · 696 阅读 · 0 评论