1、数组
- 数组(Array):一组数据的集合存放在单个变量下
- 创建数组:①利用new创建数组(学习对象后常用)
②利用数组字面量创建数组
注:JS中的数组元素可以是任意不同数据类型
- 新增数组元素
注:JS是动态语言,增加数组元素的时候并不用另外申请空间(数组占用的不是固定的一块空间)
2、函数
函数就是封装了一段可被重复调用执行的代码块,用function声明
形参不用提前定义
第二种声明方式:用变量存储函数,调用时 变量名();
3、arguments的使用
当我们不确定形参的个数时,可以暂时不写,通过arguments来获取,arguments实际上是当前函数的一个内置对象,该对象中存储了传递过来的所有实参。
arguments实际上是一个伪数组,因此可以进行遍历。伪数组具有以下特点:
1、具有length属性
2、按索引方式存储数据
3、不具有数组的push、pop等方法
4、JavaScript作用域(es5)
作用域简单来说就是函数、变量等的作用范围,仅在此范围内生效。全局变量在整个script标签中 都能使用,而局部变量仅能在函数内使用。
注:若在函数内部未声明的变量,则属于全局变量。(es6中可以)
作用域链:就近原则,JS可以在函数内部再定义其他函数,此时内部函数可以访问外部函数变量,用链式查找决定哪些数据能被内部函数访问。
输出20
5、预解析
预解析:JS引擎会把JS中所有var声明和function声明提升到当前作用域最前面,剩下代码依次执行。预解析分为变量预解析(变量提升)和函数预解析(函数提升)。变量提升时,仅将声明提升,并不提升赋值操作
结果为:undefined
6、对象
在JavaScript中,对象是一组无序的相关属性和方法的集合,所有事物都是对象,例如字符串、数值、数组、函数等。
对象由属性和方法组成:属性是事物的特征,方法是事物的行为。
对象可以让代码结构更清晰
对象是复杂数据类型object
1、利用字面量创建对象(用花括号)
var 对象名 = {属性,方法}
注:属性或方法用逗号隔开,且方法用匿名函数形式
使用对象的属性或方法:对象名.属性/方法
使用属性时还可以书写为 对象名[‘属性名’]
2、利用new Object创建对象
var 数组名 = new Object();
数组名.属性名;
数组名.方法名 = function(){ }
3、利用构造函数创建对象
构造函数:用于封装一些对象的公共属性和方法,是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值。
注:①构造函数名首字母要大写 ②其中的属性方法变量要用this接收,表当前使用该构造函数的对象 ③调用构造函数要加new
遍历对象中的属性/方法,使用for..in
7、内置对象
JavaScript中的对象分为:自定义对象、内置对象、浏览器对象。前两种对象是JS的基础内容,属于ECMAScript;第三个浏览器对象属于JS独有,JS API中讲解。
内置对象就算指JS语言内部子代的一些对象,这些对象提供了一些常用的或是最基本且必要的属性和方法(其实就相当于库函数)。
JS的内置对象如:Math、Date、Array、String等。
查阅内置对象使用方法的常用文档:MDN
MDN网址:https://developer.mozilla.org/zh-CN/
8、倒计时案例(时间戳)
时间戳就是标识某一时刻,是独一无二的
+new Date()是获取当前时间总的毫秒数,还可以用date.valueOf();或者date.getTime();
date是创建的Date对象
9、记录字符串中各字符出现的次数
10、简单类型与复杂类型
简单类型又叫做基本数据类型或者值类型,复杂类型叫做引用类型
五大基本数据类型都是值类型:string、number、boolean、undefined、null
用new分配的是复杂数据类型:Date、String、Object等
值类型在变量中存储时存的是值本身,因此是值传递
引用类型在变量中存储时存的是地址,因此是地址传递