一、学习内容
变量的作用域及作用域链
作用域
全局变量:就是在全局中都可以使用,如果在函数中只给变量赋值,不声明,就会直接认定为全局变量
局部变量:局部变量只有在函数的内部才能使用,外部不行。
变量的作用域链
当有多个变量名称相同的时候,采取就近原则,使用距离使用变量的代码最近的那个变量
JS的预解析
JS代码运行的步骤
预解析
从上到下进行执行
JS引擎会将JS里面所有的var 和 function 提升到当前作用域的最前面
变量预解析
就是把变量的声明提升到当前作用域的最前面,不提升赋值操作
函数的预解析
就是把所有的函数声明提升到当前作用域的最前面,但是不进行调用操作。
JS的对象
对象的概念
现实生活中,万物皆对象,对象是一个具体的事物,比如,咱们班的班主任,迪丽热巴,马尔扎哈。
对象的组成
在JS中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,比如字符串、数组、函数等等。
对象由属性和方法来构成的
属性:事物的特征,在对象中用属性来表示(常用名词).
方法:事物的行为,在对象中用方法来表示(常用动词)
对于一个手机来说
属性有:尺寸、颜色、价格、品牌、分辨率等等
方法有:打游戏、拍照、打电话、支付、看视频、干架砸人等等
为什么需要对象
保存一个值的时候,可以使用变量
保存多个值的时候,可以使用数组,
如果要保存一个人的完整信息,就需要用到对象
创建对象的三种方式
利用字面量来创建对象
创建对象的时候使用键值对的形式
调用对象
调用属性
对象名.属性名
对象名['属性名']
调用方法
对象名.方法名() 注意调用方法的时候要加小括号,因为方法实际上是一个函数
利用new Object创建对象
语法
var obj = new Object();
利用构造函数来创建
什么是构造函数
是一种比较特殊的函数,主要是用来初始化对象的,而且要为对象的属性来赋初始值,它经常与new运算符一起使用,我们一般会将对象中的一些公共的属性和方法抽取出来,封装到构造函数中。
创建构造函数注意
构造函数是用于创建某一类对象的,首字母要大写。
构造函数要和new关键字一起使用
构造函数的作用就是需要将对象的相同属性和方法抽取出来,封装在一起,然后可以创建不同的对象但会具有相同的属性和方法,只不过值不一样而已。
使用构造函数创建对象的过程
1、new创建了一个空对象
2、this就会直接指向刚才创建的空对象
3、执行构造函数里面的代码,来给这个空对象添加属性和方法
4、返回这个对象(构造函数里不需要return)
构造函数和对象的区别
构造函数
构造函数是抽象了对象的公共部分,封装到函数中,泛指某一大类(class)
创建对象
特指某一个具体的对象,通过new关键字来进行创建,创建对象的过程也叫做对象的实例化。
|