函数节流与函数防抖(以及它们的使用场景) 概念函数节流: 频繁触发,但只在特定的时间内才执行一次代码函数防抖: 频繁触发,但只在特定的时间内没有触发执行条件才执行一次代码两者区别在于函数节流是固定时间做某一件事,比如每隔1秒发一次请求。而函数防抖是在频繁触发后,只执行一次(两者的前提都是频繁触发)函数节流函数节流的应用场景一般是onrize,onscroll等这些频繁触发的函数,比如你想获取滚动条的位置,然后执行下一步动作...
Jquery之选择器和过滤器 基本选择器基本选择器功能返回值示例$("#id")根据给定的id匹配一个元素单个元素$(“xdl”):选取id值为xdl的元素$(".class")根据给定的类匹配元素元素集合$(".xdl"):选择所有class值为xdl的元素$(“element”)根据给定的元素名匹配元素元素集合$(“p”):选择所有< p >元素$(...
跨域问题 引言跨域,顾名思义,就是一个域发送请求访问另一个域。什么是域?域就是协议名(如http)+主机名(如www.baidu.com)+端口号(如80)。只有这三部分一样,才能算是同一个域跨域的方法常用的有四种:分别是JSONP、iframe标签跨域、代理服务器跨域、CORS跨域JSONP跨域众所周知,在HTML页面中的&lt; img &gt;、&lt; link &gt;、&lt; ...
AJAX XMLHttpRequest对象AJAX的原理就是通过XMLHttpRequest对象向服务器发起异步请求。现在一般主流的浏览器都支持该对象,不过早期的IE5、6只支持ActiveXObject。所以,我们需要做出兼容var xmlhttp = null;if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest();}else{...
vuex入门(二)之辅助api vuex的辅助技能modules上篇讲解的vuex举的例子都是只有一个或者几个状态。但是如果我们有很多个组件,他们都要有很多个状态怎么办?挤在一个store.js未免太过臃肿。所以vuex提供了modules的辅助技能。 modules用法假如我们有三个组件,分别是human,cat,dog。那么我们分别创建三个js文件用来存放三个组件所需要的state状态等 首先,创...
vuex入门(一)之API 什么是vuex?vuex是个状态(也可以说公共值)管理器。简单概括就是,它相当于一个公共仓库,任何组件都可以使用(包括里面的状态值)它。 vuex作用:因为他相当于一个公共仓库,那么我们不管父组件与子组件间还是同胞组件间,他们之间传递信息就方便很多了。vuex例子大家可以根据下面的讲解在这进行印证。 首先,下载vuex npm install vuex –save...
ES6之Promise 什么是promise?总所周知,JS是单线程的。但是我们又要让它实现多线程的效果,最大众的方法就是用异步。而promise就是更简洁方便的异步编程方案。 // 平常我们所使用的异步,如AJAX... xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 &amp;&amp;...
css之Flex布局(二) flex布局之flex-item的属性 前言:这里的flex-item的属性是指Flex容器中项目div的属性继上篇讲了flex布局的容器的六大css属性,这次来说说容器中的项目(flex-item)的六大css属性orderflex-growflex-shrinkflex-basisflexalign-self在下面的代码实例中,为了更直观的看属性的解析。不会...
css之Flex布局(一) flexBox布局使用flexBox布局前需要给容器添加样式display:flex;...&amp;amp;lt;style&amp;amp;gt; .contain{ display:flex; }&amp;amp;lt;/style&amp;amp;gt;&amp;amp;lt;div class=&amp;quot;contain&amp;
express框架入门必须要了解的三个基础知识点! 1、app.use()和app.METHOD()两者都有接收req的路径,然后做出下一步 的作用。 当然,use()还有调用中间件等其他的作用,但原理还是接收路径的原理。想详细了解可看官方文档。app.METHOD()是app.post(),app.get(),app.put()等方法的统称① app.use(path,callback) ② app.METHOD(path,c...
mongoose使用之创建连接数据库 mongoose用法下载首先你需要有个MongoDB数据库,然后进入MongoDB的文件夹中的bin文件启动它(使用cmd) mongod.exe -dbpath xxxxxxx(自己指定路径,mongoDB数据文件存放的地方)启动好后,下载mongoose插件 npm install mongoosemongoose的使用mongoose的引用...
正则表达式 正则表达式语法:/正则表达式主体/修饰符(可选) var patt = /John/i;解析: /runoob/i 是一个正则表达式。 runoob 是一个正则表达式主体 (用于检索,这里可以是要搜索的字符串也可是正则表达式)。 i 是一个修饰符 (搜索不区分大小写)。正则表达式的常用函数和正则表达式配合使用的函数常用的有四种: 1. search(...
vue之简单的js、css等静态文件的引入 一、css外部文件引入引入的前提是,你的loader中有css-loader和style-loader! ①上面的前提满足了,我们可以直接在组件中引入 <style> @import '../../xxx.css' </style>二、js外部文件引入方法①:在组件中, <script src="....
vue之观察者watch 前言:computed和watch区别computed:监听多个数据或者一个数据来维护返回一个状态值,只要其中一个或多个数据发生了变化,则会重新计算整个函数体,重新返回状态值。(computed中监听的值可以不再data中设置,而watch要)watch:只能一个一个监听数据,只要这个数据发生变化,就会返回两个参数,第一个是当前的值,第二个是变化前的值。每当变化的时候,则会触发函数体的逻辑...
JS的封装与继承 前述:什么是原型链? 由proto连起来的链条叫做原型链。当我们在对象中访问proto时,只有当原型链全部访问完毕,才会终止这一次的proto访问。如下图: 什么是_proto_? 基于js中的“万物皆对象”,proto是任何对象都有的属性,当然函数也会有(当函数做对象用时,比如new xxx);proto用来作指针,指向原型链的 下一个 prototype,是原型链的基本构成部分!...
改变this作用域的常用方法 继上文我们知道this作用域的作用范围,现在我们了解下如何改变this作用域。 改变this作用域常用的有三种方法。如下: 1、通过call()和apply()改变(两种方法)这两种方法达到的效果都一样,只是用法不一样。 call()方法传入的参数需要一个一个的,而apply传入的参数是以数组的形式进行传参。如下call(this作用域,参数1,参数2,参数3……)appl...
关于this指针的指向 首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象 this指针一般常用的有一下几种情况: 情况一:如果一个函数中有this,但是它没有被上一级的对象所调用,那么this指向的就是window,这里需要说明的是在js的严格版中this指向的不是window,而是underfin...
前端的浅拷贝和深拷贝 一、浅拷贝和深拷贝的区别 数据都是存储在内存当中,而我们调用数据的时候都是通过地址来调用数据。对于浅拷贝来说,比如一个数组,只要我们修改了一个拷贝数组,那么原数组也会改变! var a = [0,1,2,3,4]; var b = a; console.log(b); //[0,1,2,3,4] console.log(a); //[0,1,...
教你数组去重的思路以及方法~ ①不产生新数组的方法 思路:将该数组的某个元素(这里命名为变量x)与该素组所有元素比对,若有重复,则获取该元素在数组中的地址,然后删除该元素! 如何获取该元素的地址? 变量x的地址就是重复的元素的地址!例如,a[4]与数组a所有元素对比,若a[4]前面已经出现过相同的元素,那么a[4],就是一个重复的元素,他的地址就是4!为什么呢?别忘了,他们是一个数组! let a ...
解决div相互覆盖层叠问题! 当我们看到div相互层叠覆盖的时候,首先我们想到的是否有div脱离了文档流?其次我们在分析他们是通过什么方法脱离文档流的? 目前,常见的脱离文档流的方法有position定位和float浮动两种! 如果不知道什么是文档流的童鞋可以看看这个。 1、如果这个div是通过float导致的脱离文档流的话,可以通过上面的div和下面的div之间插入清除浮动。 ...