预解析、对象

预解析

JavaScript代码是由浏览器中的JavaScript解析器来执行的。JavaScript 解析器在运行JavaScript代码的时候分为两步:预解析和代码执行。
1、我们js引擎运行js分为两步:预解析代码执行。
(1)、预解析:js引擎会把js里面所有的var还有function提升到当前作用域的最前面。
(2)、代码执行:按照代码书写的顺序从上往下执行。
2、预解析分为:变量预解析(变量提升) 和函数预解析(函数提升)。
(1)、变量提升:就是把所有的变量声明提升到当前的作用域最前面,不提升赋值操作。
(2)、函数提升:就是把所有的函数声明提升到当前作用域的最前面,不调用函数。
来两个栗子:
在这里插入图片描述
在这里插入图片描述
为什么呢?
我们来看一下它执行了怎样的代码:
在这里插入图片描述
所以显示的是undefined。
第二个:
在这里插入图片描述
在这里插入图片描述
下面我们来看看它的执行代码:
在这里插入图片描述
所以报错了。

对象

一、对象

1、什么是对象

现实生活中:万物皆对象,对象是一个具体的事物,看得见摸得着的实物。例如,一本书、一辆汽车、一个人。
可以是"对象",一个数据库、一张网页、一个与远程服务器的连接也可以是"对象"。
在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。
对象是由属性和方法组成的。
(1)、属性:事物的特征,在对象中用属性来表示(常用名词)
(2)、方法:事物的行为,在对象中用方法来表示(常用动词)

2、为什么需要对象

保存一个值时,可以使用变量,保存多个值( 一组值)时,可以使用数组。那么如果要保存一个人的完整信息呢?
比如,将"颜如玉"的个人的信息保存在数组的方式为:
var arr = [‘颜如玉’,‘女’,‘20’,‘156’]
如果是这样的话我们只能知道她叫颜如玉是个女的下面的20,156我们就有点蒙了所以我们需要用到对象
JS中的对象表达结构更清晰,更强大。颜如玉的个人信息在对象中的表达结构如下:
颜如玉.姓名 = ‘颜如玉’;
代码的话就是:person.name = ‘颜如玉’;
颜如玉.性别= ‘女’;
代码:person.sex =‘女’;
颜如玉.年龄 = 20;
代码为:person.age = 20;
颜如玉.身高= 156;
代码为:person.height = 156;

二、创建对象的三种方法

在JavaScript中,现阶段我们可以采用三种方式创建对象(object):
1、利用字面量创建对象
2、利用 new Object创建对象
3、利用构造函数创建对象

1、利用字面量创建对象

1、利用字面量创建对象
对象字面量:就是花括号{}里面包含了表达这个具体事物(对象)的属性和方法。
(1)、{}里面采取键值对的形式表示:
键:相当于属性名
值:相当于属性值,可以是任意类型的值(数字类型、字符串类型、布尔类型,函数类型等)。
(2)、多个属性或者方法中间用逗号隔开的
(3)、方法冒号后面跟的是个匿名函数
2、使用对象
(1)、调用对象的属性我们采取对象名.属性名".“我们理解为"的”
比如:console.log(obj.uname);
(2)、调用属性还有一种方法 对象名[‘属性名’]
比如:console.log(obj[‘age’]);
(3)、调用对象的方法,对象名.方法名()千万别忘记添加小括号比如:obj.sayHi();

变量、属性、函数、方法总结

变量:单独声明赋值,单独存在。
属性:对象里面的变量称为属性,不需要声明,来描述该对象的特征。
函数:单独存在的,通过"函数名()"的方式就可以调用。
方法:对象里面的函数称为方法,方法不需要声明,使用"对象.方法名()"的方式就可以调用,方法用来描述该对象的行为和功能。

2、利用new Object创建对象

跟我们前面学的new Array()原理一致
在这里插入图片描述
在这里插入图片描述
(1)、我们是利用等号赋值的方法添加对象的属性和方法。
(2)、每个属性和方法之间用分号结束。

3、利用构造函数创建对象

那我们为什么需要使用构造函数?
就是因我们前面两种创建对象的方式一次只能创建一个对象。
因为我们一次创建一个对象,里面很多的属性和方法是大量相同的我们只能复制。
因此我们可以利用函数的方法重复这些相同的代码我们就把这个函数称为构造函数。
又因为这个函数不一样,里面封装的不是普通代码,而是对象。
构造函数就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面。
1、构造函数的语法格式
在这里插入图片描述
2、体验一下:
在这里插入图片描述
在这里插入图片描述
注意
(1)、构造函数名字首字母要大写。
(2)、我们构造函数不需要return就可以返回结果。
(3)、我们调用构造函数必须使用new。
(4)、我们只要new Star() 调用函数就创建一个对象ldh {}
(5)、我们的属性和方法前面必须添加this。

三、new关键字

new在执行时会做四件事情:
1、在内存中创建一个新的空对象。
2、让this指向这个新的对象。
3、执行构造函数里面的代码,给这个新对象添加属性和方法。
4、返回这个新对象(所以构造函数里面不需要return)。

四、遍历对象属性

for…in语句用于对数组或者对象的属性进行循环操作
1、格式:
在这里插入图片描述
栗子:
在这里插入图片描述
在这里插入图片描述

五、总结

1、对象可以让代码结构更清晰。
2、对象复杂数据类型Object。
3、本质:对象就是一组无序的相关属性和方法的集合。
4、构造函数泛指某一大类,比如苹果,不管是红色苹果还是绿色苹果,都统称为苹果。
5、对象实例特指一个事物,比如这个苹果、一只猫等。
6、fr…in语句用于对对象的属性进行循环操作。

[^1]:好了,这就是关于预解析和对象的相关知识了,希望对你有所帮助,最后让我们一起努力吧!

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值