+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