文章目录

  • 前端---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相关推荐

  1. Web前端-JavaScript基础教程上

    Web前端-JavaScript基础教程 将放入菜单栏中,便于阅读! JavaScript是web前端开发的编程语言,大多数网站都使用到了JavaScript,所以我们要进行学习,JavaScript ...

  2. 前端---JavaScript基础4

    文章目录 前端---JavaScript基础3 call&apply 原型链 原型链操作 例子:按钮组件封装:(类似于Bootstrsp里的按钮组件封装) 前端-JavaScript基础3 c ...

  3. 前端---JavaScript基础3

    文章目录 前端---JavaScript基础3 普通对象与函数对象 原型及属性判断 构造函数继承 原型继承 组合继承 寄生组合式继承 前端-JavaScript基础3 普通对象与函数对象 原型及属性判 ...

  4. 前端---JavaScript基础1

    文章目录 前端---JavaScript基础1 数据类型 面向对象 对象创建方式 对象类型判断 前端-JavaScript基础1 JS是 解释型语言:跨平台 慢 编译型语言:不能跨平台 快 数据类型 ...

  5. Web前端-JavaScript基础教程下

    Web前端-JavaScript基础教程下 <script>有6个属性: async对外部脚本有效,可以用来异步操作,下载东西,不妨碍其他操作. charset为src属性指定字符集. d ...

  6. 前端JavaScript基础知识点

    JavaScript基础 阶段说明 JavaScript基础 Web API JavaScript高级 ##第一天重点内容 变量的声明及使用 数据类型 类型转换 运算符 JavaScript的组成 E ...

  7. 菜鸟学前端--javascript基础

    在学习过css相关的知识,有了前端工程师的一些基础知识.但要较好的掌握前端,必须要学习好javascript的知识. 下面将从基本语法.变量.关键字.保留字.语句.函数.BOM等角度阐释. 一.基本语 ...

  8. 前端JavaScript基础

    目录 JavaScript基础 1:JS概述 1.1:历史: 1.2:现状: 1.3:特点: 1.4:应用场景 2.搭建开发环境 2.1:浏览器: 2.2:服务器端 2.3:运行JS 3.语法规范 4 ...

  9. 前端——javascript基础-ECMAScript

    文章目录 JavaScript简介 ECMAScript JavaScript的引入方式 javascript得输出方式: 变量 五种基本数据类型 运算符 数据类型转换 if语句 switch语句 w ...

最新文章

  1. 关于协作机器人10个观点的讨论
  2. System.Timers.Timer与System.Windows.Forms.Timer 区别
  3. android sdk入门(1)
  4. 最全python爬虫库安装详解
  5. 淘宝美工实用素材|轻松交作业过稿
  6. 针对灰鸽子声明 金山“四问”灰鸽子工作室
  7. Linux内核和用户空间数据交互copy_to_user和copy_from_user
  8. 声道测试音频_一音成佛的尺八音色,电吹管的单声道和双声道录音对比(2)
  9. 学生用计算机没电了,cfa计算器没电了怎么办
  10. 老范的Bug跟踪管理系统0.1 Alpha——介绍篇
  11. Windows环境下使用UHD PythonAPI开发USRP X310
  12. 背单词APP测试与评估(百词斩vs扇贝)
  13. AppWeb认证绕过漏洞(CVE-2018-8715)漏洞复现
  14. win7如何用双显示屏,如何设置
  15. 任何一个二目关系都是BCNF
  16. 音视频开发之旅(36) -FFmpeg +OpenSL ES实现音频解码和播放
  17. 中国第四个南极科考站
  18. 吴恩达Coursera深度学习课程 deeplearning.ai (5-2) 自然语言处理与词嵌入--编程作业(二):Emojify表情包
  19. 国产操作系统厂商 中科红旗Linux进入清算程序
  20. 软件测试等级abcd,学业水平测试怎样才算过?ABCD等级的分数的范围

热门文章

  1. 【题意+分析】1067 Sort with Swap(0, i) (25 分)_24行代码AC
  2. include指令与动作的区别【贴心,简洁】
  3. 计算机系统的主存主要是由()构成的。【最全!最详细分析!】
  4. 【答案放在最后,看题看不到答案】2017年下半年软件设计师 上午选择题
  5. java display属性_JavaScript中的style.display属性操作
  6. Mysql数据库函数(数字,字符串,日期时间)
  7. linux 无法访问docker mysql8_Apple M1芯片不支持Docker?Docker:正在努力适配
  8. 位运算 c语言 头文件 linux,1. 位运算_C语言_C语言入门-Linux C编程一站式学习...
  9. 自己搭建的邮件系统不能发往gmail、hotmail等问题解决
  10. 微软系统封装工具ImageX使用方法及实例介绍