當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
前端---JavaScript基础2
生活随笔
收集整理的這篇文章主要介紹了
前端---JavaScript基础2
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 前端---JavaScript基礎2
- 對象類型判斷
- call函數
- 對象屬性操作
- 深拷貝方法
前端—JavaScript基礎2
重構以下代碼:(以面向對象的方式)
重構后:(其中this指針問題也可改成箭頭函數)
對象類型判斷
call函數
對象屬性操作
//對象屬性操作 //屬性增加 var obj = {}; obj.name = "jack"; obj['age'] = 20; var addr = "wh"; obj[addr] = "武漢"; //使用的變量 console.log(obj);//屬性刪除 var obj2 = {}; obj2.name = "aaaaa"; obj2['age'] = 22; delete obj2.name; console.log(obj2);//檢測屬性 var obj = {name:"bbb",age:23,action:function(){this.addr = "beijing"} } obj.action(); console.log(obj); //in console.log('name' in obj) //hasOwnProperty console.log(obj.hasOwnProperty('age'))//屬性枚舉 遍歷 var arr = ['a','b','c','d']; var obj = {name:"bbb",age:23} //for in for(var key in obj){//屬性名 屬性值console.log(key,obj[key]) } for(var v in arr){console.log(v,arr[v]) } //for for(var i=0;i<arr.length;i++){console.log(arr[i])//if(條件ok) 終止 return break; } //forEach 沒有返回值 arr.forEach(function(item,index){//不能終止console.log(item) }) //map -- 可修改數組的值 有返回值 var m = arr.map(function(item){ //循環每一個屬性 并返回改變后的屬性return item+1; }) //filter 過濾器 返回滿足條件的數組 var f = arr.filter(item){return item === 'c'; }) //every 返回true false 都必須滿足條件 var e = arr.every(item){return item === 'c'; }) //some 返回true false 滿足其中一個即可 var e = arr.every(item){return item === 'c'; }) //reduce var arr = [1,3,5,7]; //總數 當前數 var s = arr.filter(total,currentValue){return total+currentValue; },10) //10初始值//對象屬性拷貝 //對象序列化與反序列化 //JSON --- 瀏覽器中對象 var obj = {name:"bbb",age:23}; console.log(JSON.stringify(obj)); var str = '{name:"bbb",age:23}'; console.log(JSON.parse(str))
深拷貝方法
function deep(dest,ori){ //dest目標對象 ori源對象for(var i in ori){if(typeof ori[i] === 'object'){//遞歸 判斷是數組還是對象dist[i] = (ori[i].constructor === Array) ? []:{}; //初始化屬性deep(dest[i],ori[i]);}else{dest[i] = ori[i]; //非引用屬性}}return dest; }var a = deep({},Animal);總結
以上是生活随笔為你收集整理的前端---JavaScript基础2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript练习笔记
- 下一篇: 前端---JavaScript基础3