你不知道的js溫習(xí)

  • js循環(huán)雙值
for(var i = 0,j = 0;i<5,j<3;i++,j++){console.log(i,j);}
//打印結(jié)果0,0;1,1;2,2;
//中間的i<5,j<3;for循環(huán)條件語句如果有多個條件,滿足一個即可  是做的||判斷
  • typeof 妙用,防范機(jī)制,不會導(dǎo)致未定義的變量報錯 而是返回undefined
console.log(typeof a); //undefined
console.log(b);//ReferenceError: b is not defined
  • 字符串方法 借用數(shù)組方法 因?yàn)閷?shí)現(xiàn)很類似 字符串不可變 所以不能借用改變自身方法 如reverse,push,....
```javascript
var a  = "123124";
a = [].map.call(a,function (item,index,arr) {
  return +item*2;
}).join("");
console.log(a);//246248

```
  • Number方法 Number.EPSILON設(shè)置機(jī)器精度 來判斷兩個浮點(diǎn)型小數(shù)計算后的值
```javascript
function floatNumberIsEqual(num1,num2) {

//獲取兩個值的絕對值 如果小于機(jī)器精度就說明是相等的
return Math.abs(num1 - num2) < Number.EPSILON;
}
console.log(floatNumberIsEqual((0.1+0.2),0.3));
```

  • 數(shù)組偽亂序
```javascript
var arr = [1,2,3,4,5];

arr.sort(function (pre,cur) {
return Math.random() - 0.5;
});
console.log(arr);
```

  • 基礎(chǔ)類型是值傳遞,復(fù)合類型(對象)是引用傳遞,搞清楚深拷貝和淺拷貝??紤]vue父子通信時傳遞對象給子控件,子控件修改該對象的值時父控件的該值也會發(fā)生改變,因?yàn)橐玫氖峭粚ο螅?/p>

        var obj = {arr:[1,2,3],cc:undefined};
    
    //對json安全的(滿足json格式,沒有function 和 undefined)對象進(jìn)行深拷貝
    var jsonStr = JSON.stringify(obj);
    var otherObj = JSON.parse(jsonStr);
    console.log(obj); //{ arr: [ 1, 2, 3 ], cc: undefined }
    console.log(otherObj); //{ arr: [ 1, 2, 3 ] }
    console.log(obj === otherObj); //false
    console.log(obj.arr === otherObj.arr); //false
    
    //對js對象進(jìn)行淺拷貝(只拷貝值傳遞的基礎(chǔ)類型)
    var assignObj = Object.assign({},obj);
    console.log(assignObj);//{ arr: [ 1, 2, 3 ], cc: undefined }
    console.log(assignObj === obj); // false
    console.log(assignObj.arr === obj.arr); //true
    
    
  • 基本類型的對象類型(如Number,String,...)雖然變量引用的是該對象,但是在操作時會將該值從對象中提取出來進(jìn)行運(yùn)算,所以修改基本類型對象引用的值不能達(dá)到真正修改引用。
  • 強(qiáng)轉(zhuǎn)Number
    • Number(xxx),+xxx都可以強(qiáng)轉(zhuǎn)
    • 轉(zhuǎn)換Number先調(diào)用對象的valueOf方法 如果沒返回值則調(diào)用toString方法.得到的基礎(chǔ)類型返回值再進(jìn)行number轉(zhuǎn)換
  • 強(qiáng)轉(zhuǎn)String
    • String(xxx),xxx+""
    • 先調(diào)用toString如果沒有返回值則調(diào)用valueOf

看到73頁

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,270評論 0 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,948評論 18 139
  • 值類型轉(zhuǎn)換將值從一種類型轉(zhuǎn)換為另一種類型通常稱為類型轉(zhuǎn)換,這是顯示的情況;隱式的情況稱為強(qiáng)制類型轉(zhuǎn)換。JavaSc...
    xpwei閱讀 3,613評論 0 5
  • 自從關(guān)注微信自從關(guān)注微信公眾號以后,一直希望像各位大V一樣,寫的一手的好文章,也因此在找工作的時候?qū)Α熬W(wǎng)站編輯...
    小太陽嘿嘿閱讀 490評論 0 0
  • 世間最好的愛情便是,你在,我也在,沒有多一分,也沒有少一秒。就比如此刻現(xiàn)在,就比如林梔子與林逸凡。 初見時,他們彼...
    小左十三閱讀 402評論 1 1