lodash库:
lodash库封装了很多js的方法,比如防抖、节流以及就Java script深浅拷贝,lodash都是给我们封装好了,下载引入后都是可能直接调用的,比如我们在ie6\7\8中想要使用js中的一些方法,比如使用forEach等等是不支持的,如果不使用lodash,就需要我们自己封装方法,但是lodash给我们封装好了,我们引入之后,就可能在ie6、7、8中使用lodash,兼容性很好;
npm安装:npm i --save lodash
lodash地址: www.lodashjs.com/docs/lodash…
moment库:
只要解决日期时间格式的,不需要我们new Date(),moment()给我们封装了转换好了,并且支持多种语言格式,可以直接使用;
moment地址: momentjs.cn/docs/
动画animate:
给我们封装了很多动画的效果,要遭脚手架中使用的话直接下载依赖包之后,在main.js中引入就可以直接使用动画,使用时候要注意官网的类名格式。
npm install animate.css -S
JavaScript深拷贝和浅拷贝:
首先要知道什么是基本数据类型什么是引用数据类型
基本类型: 基本类型复制的是数据的值(内容)
number string boolear null undefined symbol
浅拷贝的话赋值的是源对象的地址,所以当原对象的值发生变化,也会影响现在值的变化
引用数据类型:对象之间的赋值,是赋值原对象的地址
浅拷贝: 值复制外层的地址,不会继续往内部找到最里面的基本类型数据
深拷贝: 层层拷贝,递归赋值内部的数据,直到找到内部的基本数据类型,才复制出来
深拷贝的实现方式:
1、 json.stringfy()先把数据转为字符串基本数据类型,然后在json.parse()在转为对象,这样的话,可以实现深拷贝,
缺点:不可以拷贝赋值函数、undefined,这些拷贝赋值出来的是null
2、递归来实现
JavaScript中操作Dom方法
先在的话都是使用框架,都是数据驱动、组件化、模块化、虚拟dom
但在这些之上我们也得知道如何操作DOM
在Jquery中我们可以直接通过$符号来获取dom节点,很方便;
在元素JavaScript中,dom的事件绑定分为:
1、html标签中绑定事件
<button onclick="btn()">触发事件</button>
优点:兼容性好,兼容ie6、7、8
缺点:后期的管理不方便,现在很少使用
2、dom0级绑定事件
<button>触发事件</button>
var btn =document.queryselector('button');
btn.onclick=function(e){}
优点:兼容性好,
缺点:不可以同一事件多次绑定执行,它只会执行最后一个
移除事件: DOM元素.onclick=null
3、dom2级绑定事件 //主流方式,适用于在移动端的原声js
<button>触发事件</button>
var btn =document.queryselector('button');
btn.addEventListener('click',function(){},false)
//false为事件冒泡,true为事件捕获
优点: 支持同一事件多次绑定执行
缺点:兼容性没有上面两种兼容好。
https://caniuse.com/可查看兼容浏览器