一、今日知识点 1 JS函数 arguments的使用 概念 当我们不确定有多少个实参要进行传递的时候,可以使用arguments来获取,它可以存储传递的所有实参。 arguments是一个伪数组,可以进行遍历,可以使用length,但是没有数组的本身的方法,比如pop,push等等。 函数之间的相互调用 根据年份判断2月天数 函数的自调用 函数的两种声明方式 命名函数 function 函数名() {} 因为函数是有名字的,所以叫做命名函数,调用函数的代码可以放在函数声明之前,也可以放在函数声明之后。 匿名函数 var fn = function() {函数体} 因为函数是没有名字的,所以叫匿名函数 fn 是一个变量名,里面存放的是一个函数 函数调用的代码必须写到函数体的后面 变量的作用域及作用域链 作用域 全局变量:就是在全局中都可以使用,如果在函数中只给变量赋值,不声明,就会直接认定为全局变量 局部变量:局部变量只有在函数的内部才能使用,外部不行。 变量的作用域链 当有多个变量名称相同的时候,采取就近原则,使用距离使用变量的代码最近的那个变量 2 JS的预解析 JS代码运行的步骤 预解析 从上到下进行执行 JS引擎会将JS里面所有的var 和 function 提升到当前作用域的最前面 变量预解析 就是把变量的声明提升到当前作用域的最前面,不提升赋值操作 函数的预解析 就是把所有的函数声明提升到当前作用域的最前面,但是不进行调用操作。 3 JS的对象 对象的概念 现实生活中,万物皆对象,对象是一个具体的事物,比如,咱们班的班主任,迪丽热巴,马尔扎哈。 对象的组成 在JS中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,比如字符串、数组、函数等等。 对象由属性和方法来构成的 属性:事物的特征,在对象中用属性来表示(常用名词). 方法:事物的行为,在对象中用方法来表示(常用动词) 对于一个手机来说 属性有:尺寸、颜色、价格、品牌、分辨率等等 方法有:打游戏、拍照、打电话、支付、看视频、干架砸人等等 为什么需要对象 保存一个值的时候,可以使用变量 保存多个值的时候,可以使用数组, 如果要保存一个人的完整信息,就需要用到对象 创建对象的三种方式 利用字面量来创建对象 创建对象的时候使用键值对的形式 调用对象 调用属性 对象名.属性名 对象名['属性名'] 调用方法 对象名.方法名() 注意调用方法的时候要加小括号,因为方法实际上是一个函数 利用new Object创建对象 语法 var obj = new Object(); 利用构造函数来创建 什么是构造函数 是一种比较特殊的函数,主要是用来初始化对象的,而且要为对象的属性来赋初始值,它经常与new运算符一起使用,我们一般会将对象中的一些公共的属性和方法抽取出来,封装到构造函数中。 创建构造函数注意 构造函数是用于创建某一类对象的,首字母要大写。 构造函数要和new关键字一起使用 构造函数的作用就是需要将对象的相同属性和方法抽取出来,封装在一起,然后可以创建不同的对象但会具有相同的属性和方法,只不过值不一样而已。 使用构造函数创建对象的过程 1、new创建了一个空对象 2、this就会直接指向刚才创建的空对象 3、执行构造函数里面的代码,来给这个空对象添加属性和方法 4、返回这个对象(构造函数里不需要return) 构造函数和对象的区别 构造函数 构造函数是抽象了对象的公共部分,封装到函数中,泛指某一大类(class) 创建对象 特指某一个具体的对象,通过new关键字来进行创建,创建对象的过程也叫做对象的实例化。 遍历对象的属性 for... in... 语句来遍历对象的属性 对象中嵌套数组 对象中嵌套数组,数组中继续嵌套对象 数据类型的区别 简单数据类型 也叫做基本数据类型,在存储时变量存储的是值的本身 比如:string、number、boolean、undefined、null 复杂数据类型 也叫做引用数据类型,在存储时变量存储的仅仅是地址,地址会指向存储的数据 比如:使用new关键字来创建的对象(系统自带对象,自定义对象),比如:Object、Array、Date等等 栈和堆的概念 简单数据类型是存放在栈里面的,在栈中直接开辟一段内存空间存放值的本身 复杂数据类型是首先在栈里面开辟空间存放一个十六进制的地址,然后地址指向堆中的数据 简单数据类型的传参 复杂数据类型传参 内置对象 什么是内置对象 JS对象对象分成3种:自定义对象、内置对象、浏览器对象 自定义对象和内置对象是js的基础内容,属于ECMAScript,浏览器对象是js独有的,指的是js的api 内置对象是js自带的对象,开发者可以直接使用,提高开发效率 js提供的内置对象有Math、Date、Array、String等等 自己封装一个数学对象 |
欢迎光临 菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育 (http://www.xingmaxueyuan.com/) | Powered by Discuz! X3.4 |