JavaScript基础

核心知识点

  • 对象

    • 4种创建对象的方式
    • 操作对象(取值,赋值)

今日学习目标

  • 能够使用对象方式保存数据
  • 能够理解自定义构造函数如何创建对象
  • 能够获取对象中的值及给对象赋值

对象

思考: 如何通过js函数将人的信息输出?

什么是对象?

☞现实世界: 万事万物皆对象。✔对象: 必须是一个具体的事物。 (手机,汽车不是对象,属于一类对象)◆ 对象是由 特征(名词)【属性】 和 行为(动词)【方法】☞程序中的对象: 对现实对象的抽象☞ 总结:
1. 程序中的对象:✔ 对象必须有对应的属性【描述对象的特点,在程序中一般使用名词描述】✔ 对象必须有行为动作方法 【方法用来描述具体对象的行为动作,一般方法使用动词】

对象字面量创建对象

☞ 通过字面量方式创建对象var  变量名  =  {  key: value, key: value,  key: functon () {}  };备注:1. 创建对象,必须要确定具体的事物2. 创建对象,必须要确定对象有哪些属性【特征】或者方法【动作,行为】3. 如果一次想要输出多个对象,那么可以将每一个对象放到一个数组中。☞ 访问对象属性    (对象.属性   |  对象['属性名'])
☞ 访问对象方法    (对象.方法名)注意:1、 如果通过  对象['属性名']访问对象的属性时候,必须保证使用字符串格式☞ 函数:独立存在的函数☞ 方法: 属于对象的函数(匿名函数)

课堂练习

1. 创建一个英雄对象☞ 姓名☞ 年龄☞ 职业☞ 武器装备 (weapon)☞ 爱好☞ 技能 (移动, 攻击(attack))

通过Object创建对象

☞   var  变量  =  new Object();1. Object 是一个构造函数2. 通过new调用构造函数☞ 添加属性:对象变量.属性名 = 值;☞ 添加方法:
对象变量.方法名 =  function () {}

工厂方式创建对象

 1. 思考如何创建多个游戏对象?2. 例如:
function  create ( name, age, height ) {var  Ob = new Object()Ob.name = name;Ob.age = age;Ob.height = height;Ob.eat = function () {}return Ob;
}

自定义构造函数创建对象

☞ 使用帕斯卡命名法 (每个单词首字母大写)☞ 例如:
function  CreateHero ( name, age, height ) {this.name = name;this.age = age;this.height = height;}☞ 课堂案例:1. 使用自定义构造函数方式创建3个对象,并添加到数组中 【对象基本的属性有: name, age, gender】

new 关键字执行过程

1. 在内存中创建一个空对象
2. this指向创建的对象
3. 执行函数
4. 返回当前对象注意:1. 在构造函数中,默认的返回值就是当前创建的对象

this关键字

1. 普通函数中的this     指向Window
2. 在方法中的this       指向当前方法所属的对象
3. 在构造函数的this     指向创建的对象
总结:构造函数谁调用函数,this就指向谁

遍历对象删除对象属性

☞ 通过   for   in  遍历 对象的成员☞ 遍历对象中的属性☞ 遍历对象中的值

对象案例

1. 通过构造函数创建3个对象,并将3个对象放到数组中,最后再将数组中每一个对象的信息输出。
备注:☞对象的信息需要从用户输入中获取

检测对象的数据类型

对象  instanceof  构造函数

对象总结

 1. 程序中的对象: 在程序中对具体事物的抽象2. 对象的基本的组成:  属性【描述对象特征特点】  |  方法 【描述对象行为动作功能】3. 创建对象方式:✔ 字面量方式var  obj = {key : 值,key : function () {}}✔ 通过构造函数var  obj = new Object();    obj.自定义属性名 = 值;obj.自定义方法名 = function () {}✔ 工厂模式创建对象(本质就是对第二种方式的封装,创建多个对象)function people (name) {var obj = new Object();obj.自定义属性名 = name;return obj}var zs = people('zs');✔ 自定义构造函数创建对象(确定对象的类型)function People (name) {this.自定义属性名 = name;}var zs  = new People('zs');4. 对象的基本操作✔ 获取对象的属性或方法1.  对象.自定义属性名  ||  对象['属性名']2.  对象.自定义方法名()5. 判断对象的具体类型对象名称  instanceOf  构造函数

其他扩展部分

简单数据类型在内存中的存储

  ☞ 简单数据类型(值类型) 存储在内存的 栈 上☞ Number  String   Boolean  Null Undefined☞ 分析简单数据类型在内存中的存储方式var  n1 = 10;var  n2 = n1;

复杂数据类型在内存中的存储

  ☞ 复杂数据类型(引用类型) 存储在内存的 堆 上☞  Object | Array | 函数

简单数据类型作为函数的参数在内存存储

 ☞  分析案例代码function  fn ( a, b ) {a = a+1;b = b+1;console.log( a );console.log( b );}var  x = 10;var  y = 5;fn(x, y);console.log( x, y );   思考:x , y 的值是多少?

复杂数据类型作为函数的参数在内存存储

  ☞ function Person ( name, age ) {this.name =  name; this.age = age;this.sayHi = function () {console.log( "你好" );}}var p1 = new Peron( "张三", 18 );function getperson ( person ) {person.name = "李四";}getperson( p1 );console.log( p1.name );   思考: p1 的name值是什么?

javaScript第六天(1)相关推荐

  1. javaScript第六天(2)

    07-javaScript基础 ☞ 函数其他部分 arguments [掌握] arguments 作用? 解决当函数的形参个数不确定的时候,通过arguments获取实参的值 如何使用argumen ...

  2. Javascript第六天学习总结日期对象和定时器

    1日期对象(Date) Date是日期的意思.Data数据的意思. 1.3日期对象定义 他就是一个盒子.里面装满了与日期有关的所有信息的盒子. 日期对象一般不独立使用,可以独立获取里面的相关信息. W ...

  3. JS基础学习第六天:JavaScript对象入门(构造函数和实例对象)

    在 JavaScript 中,大多数事物都是对象, 从作为核心功能的字符串和数组,到建立在 JavaScript 之上的浏览器 API.你甚至可以自己创建对象,将相关的函数和变量封装打包成便捷的数据容 ...

  4. JavaScript基础第六天数组

    数组 数组初始 数组:一组数据的集合,数组的每一个数据叫做一个元素 数组元素可以是任意类型,同一个数组中的不同元素可能是对象或数组 注意:隐式方式创建的数组,最常用的方式 数组特点 一组数据的集合,数 ...

  5. 学习总结:JavaScript学习分享

    前言 在学习之前我都要求同学们用 Xmind 做知识点的总结,这样的好处技能提升我们编辑思维导图的能力,做思维导图在以后的工作当中是必备技能,通过每天总结达到练习思维导图的目的,在以后的工作当中就省去 ...

  6. JavaScript笔试题(js高级代码片段)

    目录 1.哈希表+计数类型 1.1.判断是否存在重复元素 1.2.字符串中的第一个唯一字符 1.3.有效的字母异位词 1.4.多数元素 1.5.只出现一次的数字 1.6.位1的个数 2.哈希表+映射功 ...

  7. 要不起对三队 - alpha冲刺(第六天)

    作业所属课程 构建之法-2021秋-福州大学软件工程 作业要求 2021秋软工实践 alpha冲刺 团队名称 要不起对三队 这个作业的目标 alpha冲刺(第六天) 成员日志 成员 完成的任务 任务时 ...

  8. 学习JS的第六天之字符串

    学习JS的第六天之字符串 其他学习笔记:点击前往 文章目录 学习JS的第六天之字符串 前言 一.字符串(String) 1.创建一个字符串 2.字符串(String)的方法 3.字符串的length属 ...

  9. 小白JavaScript学习笔记----web APIs

    目录 web API 操作DOM BOM,比如控制网页元素交互等各种网页交互效果 一.web APIs第一天(DOM-获取元素) 1.1变量声明 1.2Web API 基本认知 1.2.1作用和分类 ...

最新文章

  1. 目标10亿部?苹果AR眼镜有望明年登场!传搭载Mac级处理器、4K显示屏
  2. NDK断点无法调试Unable to detect application ABI's
  3. 快速排序 python菜鸟教程-快速排序
  4. 1.18 Java直接插入排序法
  5. 【直播回放】中外大厂奇葩说:谁是技术圈的嘴炮王者?
  6. SQL Server 创建存储过程
  7. 【转】Oracle回收站(recyclebin)
  8. 设计模式(六)------设计模式六大原则(5):迪米特法则
  9. Visual C++编程中的文件操作
  10. HashMap中hash(Object key)原理(hashcode >>> 16)
  11. iPhone13最新外观售价曝光:好看还便宜
  12. opencv-阈值处理
  13. Android开发学习之卡片式布局的简单实现
  14. 一个影响我现在生活状况的故事[转载]
  15. 数据库工程师基础学习1----计算机硬件基础知识,计算机体系结构与存储系统
  16. 手写HashMap排序
  17. 必修三计算机选修三知识点总结,高中生物必修一、必修二、必修三、选修三知识点总结(人教版).pdf...
  18. HTML的Form和XFORM的区别,Xform是什么意思
  19. H3CNE中静态路由实验
  20. 元宇宙链游OAS即将正式上线,社区热度只增不减

热门文章

  1. [递归]递归问题解题思路
  2. 最短路径算法----floyd(转)
  3. 【cudnn】cudnn 安装
  4. batch lr替代关系_建立关系的替代方法
  5. 如何在ORACLE CLOUD中创建和访问容器集群丨内附官方文档链接
  6. 话剧《白鹿原》:叫人乍舌,令人唏嘘,也让人捏把汗(图)
  7. java教程菜鸟教程组合模式,组合实体模式
  8. hive 结构metastone_深入理解hive之事务处理
  9. ubuntu 安装kde桌面_在Ubuntu 20.04系统上安装KDE Plasma Desktop的方法
  10. python中的类装饰器应用场景_Python 自定义装饰器使用写法及示例代码