-
內置對象:
三種包裝對象:string、number、boolean
2.其他的內置對象
Array
Function
Data
Math
查看全部 -
代碼
算法
查看全部 -
運算符的優先級:盡量使用()
js舍入誤差 運算時會將數據轉化為二進制進行運算,輸出時又會轉化為十進制,在存儲過程中會丟棄一些位數,因為會多出數字(4)
方案1:數據量比較小
console.log(parseFloat((0.1+0.2).toFixed(2))) //0.3?toFixed()把數字轉換為字符串,結果的小數點后有指定位數的數字
方案2:數據量大,不能舍棄
冪次方的增加 Math.pow(a,b) 為底數 b為指數?
查看全部 -
1.
2.console.log(0||5)//放回5,在||條件下,因為0為false,所以選擇為true的5進行返回
3.console.log(0&&5)//0
4.null:typeof檢測是對象
5.==(值相同
? ?===(值與類型都要相同,開發時盡量使用===
查看全部 -
深拷貝:
//方法一:循環遍歷
function?deepClone(tartgetObj,?endObj)?{
????var?obj?=?endObj?||?{}
????for?(var?key?in?targetObj)?{
????????if(typeof?targetObj[key]?===?'object')?{
????????????obj[key]?=?tartgetObj.construtor?===?Array???[]?:?Object.create(null)(方法二:{})
????????????deepClone(tartgetObj[key],?obj[key])
????????}?else?{
????????????obj[key]?=?targetObj[key]
????????}
????}
????return?obj
}//方法二
最簡單的方法最新的方法,用ES6的擴展運算符(…)進行賦值,這個應該會在以后被廣泛應用,這個方法也完美解決了JSON.stringify+JSON.parse不能實現的對函數方法深拷貝:
? let obj1 = { name: 'Jay', age: '22',fun:function() {console.log(1)} }
? ? let obj2 = { ...obj1 };
? ? obj2.name = 'xxx'
? ? console.log(obj1.name, obj2.name, obj2)
? ? //輸出結果為(jay xxx {name: "xxx", age: "22", fun: ?})
//方法三
var?copyObj?=?JSON.parse(JSON.stringify(targetObj))?//object->string->object
查看全部 -
淺拷貝:遍歷 create
for...in 語句用于對數組或者對象的屬性進行循環操作。
for ... in 循環中的代碼每執行一次,就會對數組的元素或者對象的屬性進行一次操作。
“變量”用來指定變量,指定的變量可以是數組元素,也可以是對象的屬性。
查看全部 -
棧:計算機為原始類型開辟的一塊內存空間? string number...
堆:計算機為引用類型開辟的一塊內存空間 object
堆會棧中存一個地址值
查看全部 -
instanceof檢測返回Boolean值 true false =>A instanceof B(A對象是否由B對象實例化出來的)
?
instanceof是按原型鏈進行查找的
//可以檢測數據類型
object.prototype.tostring.call('1')//string
3.
查看全部 -
?1.typeof檢測,返回的是對應的數據類型。
2.typeof(null)//object--計算機 typeof返回的數據類型是根據機器碼的后三位進行判斷的 000=》object null=》0000000...000
3.通過new new一個構造函數 實例化一個對象
4.
‘MOOC’以字符串的形式 進行拆分 key:value 索引值為0 1 2 3
查看全部 -
async與defer區別,async哪個下載完先執行哪個。defer按照加載順序執行查看全部
-
回流相當于刷新頁面,重繪是部分更新,不涉及位置變化?;亓鲿鹬乩L,重繪不會回流查看全部
-
類型轉換
查看全部 -
原型和原型鏈
查看全部 -
this用法
改變this指向
查看全部 -
new? 的執行過程
查看全部
舉報