1.H5新特性,css新增
1》本地存储:
localstorage:永久存在关闭页面也在,除非手动删掉
sessionstorage:在浏览器存储数据的页面关闭数据就消失了
参考:https://blog.csdn.net/m0_46430338/article/details/117789529
image.png
语义化标签,如header,footer,nav,aside
离线缓存
canvas画布
音频,audio, video
新的表单元素(tel.date,time,email,url)
2》 css圆角,border-radius
阴影,box-shadow . text-shadow
动画,transform: translate() . scale(), skew() rotate()
响应式布局,媒体查询 @media
2.js去重的方法
// 去重方法一
var narr = [];
for (let i = 0; i < arr.length; i++) {
// console.log(i,arr[i]);
if (narr.indexOf(arr[i])=== -1) {// 没有符合条件返回-1
narr.push(arr[i]);
}
}
console.log(narr)
// 去重方法二
var arr = [1, 1, 2, 3];
var arr1=new Set(arr);
console.log(Array.isArray(arr));// true
console.log(Array.isArray(arr1));//false
// *注:Set返回的是一个伪数组 (对象object)Array.from(new Set(arr))
console.log(arr);// [1, 1, 2, 3]
console.log(arr1)// Set(3) {1, 2, 3}
3.let,const,var的区别
es5提出
var
1.存在变量声明提升(将变量提升到当前作用域的顶部),即变量可以在声明之前调用值为undefined。
2.缺点:可能会出现内部变量覆盖外部变量的问题
es6提出
let,const
1.不存在变量声明提升,必须在声明之后才能调用,否则会报错ReferenceError: g is not defined。
2.暂时性死区。即只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。
var tmp = 123;
if (true) {
tmp = 'abc'; // ReferenceError
let tmp;
}
//以上代码if后面{}形成了块级作用域,由于使用let声明了tmp,则这个变量就绑定了块区域,在声明之前使用,会报错
3.不能重复声明否则报错。SyntaxError: Identifier 'g' has already been declared
4.块级作用域
const是一个常量只读,不能被修改。一旦声明,常量就不能改变,必须立即初始化,不能留到以后赋值。
参考:
https://blog.csdn.net/qq_43004614/article/details/90697463
https://blog.csdn.net/qq_41363062/article/details/86567885
4.判断一个对象是object还是array
array.isArray()// 返回布尔值
Array.isArray([1, 2, 3, 4]); // --> true
var obj = {
a: 1,
b: 2
};
Array.isArray(obj); // --> false
Array.isArray(new Array); // --> true
Array.isArray("Array"); // --> false
constructor===array/object/number/boolean/string返回布尔值
5.js数组方法整理
arr.join('链接符')// 数组转字符串(原数组不变)------split()字符串转数组
arr.push()// 末尾添加,返回添加后数组长度(改变原数组)
arr.pop()// 末尾删除,返回删除项(改变原数组)
arr.shift()// 删除第一项,返回删除项(改变原数组)
arr.unshift()// 将参数添加到原数组开头,并返回添加后数组的长度(改变原数组)
arr.sort()// 默认将数组里的项从小到大排序,排序函数可返回从大到小(改变原数组)
arr.slice()// 返回从开始下标到结束下标之间的项的新数组(原数组不变)
// 1》传两个参数时,返回开始下标(从零开始),结束下标之间项(不包括结束位置的项)
// 2》传一个参数,返回开始下标(从零开始)至数组最后
// 3〉传负参数,参数为负数加数组长度,再参考1,2
arr.splice()// 插入,删除,替换(改变原数组),返回被删除/替换的项
// 删除,传入两个参数,(开始下标,删除项数)
// 插入,传入多个个参数,(开始下标,删除项数为0,多个要插入项每项以逗号分割 。。。)
// 替换,传入多个参数,(要替换项下标,要替换项数,多个要替换项。。。)
arr.forEach((值遍历数组内容,下标数组索引,数组本身)=>{// 遍历循环数组,没有返回值
});
arr.map();//映射,返回一个新的数组(原数组不变)
arr.every():判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。
arr.some():判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
arr.reverse()//反转数组项的顺序(改变原数组)
arr.concat()// 合并数组(原数组不变)
forEach到底可以改变原数组吗
当我们要用forEach对原数组进行操作的时候,需要以引用访问的方式进行访问数据,才能直接修改原数组。
http://t.csdn.cn/pC2DW1.pc_relevant_antiscanv2&utm_relevant_index=1
http://t.csdn.cn/Ob8T1
是否改变原数组
https://blog.csdn.net/qq_41570246/article/details/110408111
参考:https://www.cnblogs.com/zyfeng/p/10541133.html
6.sort排序,函数用法
7.函数防抖与函数节流
参考:https://blog.csdn.net/summer7310/article/details/48769147
call,apply,bind区别
改变this指向
传参数不一样,apply数组,bind函数
12.深拷贝,浅拷贝区别
指向内存地址,一个复制一个新的
13.es6
promise,箭头函数,newset,let,const
15.原型,原型链
https://blog.csdn.net/hnyanzijun1/article/details/121101588
16.闭包
https://mbd.baidu.com/ma/s/E7bDfAnc
如何让DIV水平和垂直居中三种方法
定位
css三角形如何实现
响应式布局,flex布局
媒体查询
正则
jquery
echarts
swiper
iscroll
ztree
跨域,同源策略
ajax,axios
git常用命令
引用百度地图
mockjs
选择获取页面文字,修改放回原来位置
保存草稿
------------vue,react---------------
react和vue的区别及优缺点是什么
https://m.php.cn/article/471791.html
vue指令大全
https://mbd.baidu.com/ma/s/uVxkwuU2
vue生命周期,路由
1》vue组件的生命周期有beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed。
创建,挂载(请求接口),更新(重绘),销毁(卸载定时器)
创建,初始化数据,编译模版,挂载dom,渲染-更新-渲染,卸载
beforeCreate:实例化
created:
https://blog.csdn.net/luping_/article/details/107516450
2》vue 父子传参
vue的key作用
vue组件中的data为什么是一个函数
image.png
https://blog.csdn.net/zhanggei/article/details/120186796
https://blog.csdn.net/hnyanzijun1/article/details/120855628?spm=1001.2014.3001.5502









网友评论