1.判断js类型的方法
1 typof() 2 可以判断出 string boolean undefiend number 3 但是判断typeof(null) 时值为object ,判断对象数组的时候也是object
Object.prototype.toString.call() 可以判断出所有类型
Array.isArray()判断是否为数组
2.闭包的概念:有权访问另一个函数内部的变量
优点:避免全局变量污染,希望一个变量长期存储在内存中
缺点:内存泄漏,增加内存使用量
function f1(){ var n=1; function f2(){ //f2就是闭包 alert(n) } }
3.浅拷贝和深拷贝都只针对于引用数据类型
浅拷贝:浅拷贝只复制对象的指针,不复制对象本身 Object.assign()实现浅拷贝 深拷贝:使用JSON.stringify和JSON。parse()实现深拷贝,缺陷:只能处理Number,string boolean Arry ,只有可以转成JSON格式对象才可以这样用,像function就没办法了
4.js中值类型,和引用类型
1.值类型:string ,Boolean ,number ,null ,undefiend 2.引用类型:function object array
5.es6数组去重
var arr = [1,3,3,7.8] 第一种:let res = [...new Set(arr)] 第二种:let arr1 = arr.reduce((initialValue,currentValue)=>{ if(!initialValue.includes(currentValue)) { initialValue.push(currentValue) } return initialValue },[])
reduce常用来求和
const sum = arr.reduce((arr,curValue)=>{
return arr+curvalue
},0)
6.vue.js使用的时单向数据流,双向绑定,js单向数据流
7.promise 是异步编程的一种解决方案,主要用来解决回调地狱的问题,一般情况下配合async/await使用 await后面必须是一个promise对象