+true; //1 ,一元加号会尝试将boolean
类型转换为数字类型。 true
被转换为1
,false
被转换为0
。
!"Lydia"; //falsecss
对象类型是引用传递html
function person(per){ per.name = 'haha'; per.age = 3; console.log(per) } person({name:"www", age: 2}) // {name: "haha", age: 3}
Object.is方法在===的基础上增长了NaN和NaN是相等的;+0和-0是不相等的
延伸:==隐式转换规则; 运算符的优先级;(+1)vue
+0 === -0 //true +0 === -'0' //true +1 === -'1' //false Object.is(+0, -0) //false
常见的状态码有200,301,302,304,400,404,401,500,502 其中以2开头的表明请求成功, 以3开头的是重定向,其中301是永久重定向,302是临时重定向, 强缓存和协商缓存[缓存](https://mp.weixin.qq.com/s/dnEbgNnu7rL9i2V_Zjjnyw)**(+3)**
Promise.all = function(arr){ let result = [], count = 0; return new Promise(function(resolve, reject){ for(let item of arr){ item.then(res=>{ result[count] = res; count++; if(count === arr.length){ resolve(result); } }) }; }); }; let promise1 = new Promise(function(resolve) { resolve(1); }); let promise2 = new Promise(function(resolve) { resolve(2); }); let promise3 = new Promise(function(resolve) { resolve(3); }); let promiseAll = Promise.all([promise1, promise2, promise3]); promiseAll.then(function(res) { console.log(res); }); Promise.all = function(arr){ let result = [], count = 0; return new Promise(function(resolve, reject){ arr.map(item=>{ item.then(res=>{ result[count] = res; count++; (count === arr.length) && resolve(result); }).catch(err=>{ result[count] = err; count++; (count === arr.length) && resolve(result); }); }); }); }; var p1 = new Promise(function(resolve, reject){reject(1)}) var p2 = new Promise(function(resolve, reject){resolve(2)}) Promise.all([p1, p2]).then(res=>{ console.log(res) })
let,const,var声明变量的做用域不一样;变量提高;(+1) 变量的赋值能够分为三个阶段: 一、建立变量,在内存中开辟空间 二、初始化变量,将变量初始化为undefined(let和const声明的初始化时不会分配内存,因此会存在暂时性死区) 三、真正赋值
做用域概念不一样;变量提高(+1)node
isNaN会有一个转换,可以转换为数字类型的都返回false,
Number.isNaN是严格判断是否为NaNreact
返回一个新数组对原数组没有影响,默认扁平化一级webpack
funtion myNew(fn, arg){ var obj = {}; obj.__proto__ = fn.prototype; fn.apply(obj, arg); return obj; }
防抖可应用于阻止重复发送请求,一段时间内重复触发的话则会从新计算时间,只会执行最后一次; 节流是只认第一次的操做,在某一时间段内无论触发多少次,只执行第一次函数的回调;
defineProperty——>
——>diff算法——>重绘和回流(重排) 重绘回流(+1)
思路:说到跨域先了解同源策略——>常见的跨域场景——>解决方案
组件可复用性ios
经常使用的设计模式以及解决了什么问题
for(var i = 0, len = arr.length; i < len; i++){ for(var j = i+1, lenj = arr.length; j < lenj; j++){ if(arr[i] == arr[j]){ arr.splice(j, 1); j--; lenj--; i--; len--; } } }
var obj = {}; for(var i = 0, len = arr.length; i < len; i++){ if(!obj[arr[i]]){ obj[arr[i]] = arr[i]; } } console.log(Object.values(obj))
利用indexOf
https://github.com/mqyqingfeng/Blog
https://muyiy.cn/question/git