一、JavaScript数组
1.1.为什么要使用数组?
- 可以统一管理和保存多个变量
- JavaScript得数组可以通过[]来创建
- []中存放一组数据
- 开发中建议存放相同类型的数据
1.2.数据的常见操作
- 数组有一个length属性,可以直接通过length获取数组的长度
- 获取数组某个位置的数据:通过索引值
- 索引值也被称为下标值index
- 索引值是从0开始的
- 如果传入不存在的索引值,返回的结果是undefined
1.3.数组的遍历
- 遍历:遍及所有,历经全部的意思,也被称之为迭代
- 对数组的每一个元素都访问一次就叫遍历
二、JavaScript函数基础
2.1.认识函数
-
什么是函数?
- 函数其实就是某段代码的封装,这段代码帮助我们完成某个功能
-
函数的使用包含两个步骤:
- 定义函数——封装独立的功能
- 调用函数——享受封装的成果
-
定义函数
- 定义函数的过程是对某些功能的封装过程
- 在之后的开发中,会根据自己的需求定义很多自己的函数
-
调用函数
- 调用函数时让已存在的函数为我们所用
- 这些函数可以是自己封装好的某个功能函数
- 也可以使用JavaScript或其他三方库定义好的函数(拿来主义)
-
函数的作用:在开发程序时,使用函数可以提高编写的效率以及代码的重用
2.2.定义和调用函数
-
定义函数使用function关键字:这种写法称之为函数的声明
-
注意:
- 函数名的命名规则和变量名的命名规则是相同的
- 函数定义完后里面的代码是不会执行的,函数必须调用才会执行
-
调用函数通过函数名()即可:比如test()
2.3.函数的返回值
- 使用return关键字来返回结果
- 注意:
- 一旦函数中执行了return操作,当前函数会立即终止
- 如果一个函数没有写返回值,相当于return undefined
- 如果函数使用return语句,但是return后面没有任何值,那么函数的返回值是undefined
2.4.arguments参数
- arguments对象:在函数中
- 默认情况下,arguments对象是所有(非箭头)函数中都可用的局部变量
- 该对象存放着所有的调用者传入的参数,从0位置开始,依次存放
- arguments对象的类型是一个object类型,不是一个数组,但是和数组的用法看起来很相似
- 如果调用者传入的参数多于函数接收的参数,可以通过arguments去获取所有的参数
2.5.函数的调用栈
- 函数的调用过程是一个压栈过程
2.6.变量的作用域
-
变量在哪个范围内可以被使用,这个范围就是变量的作用域
-
块级作用域:在JavaScript(ES5)里没有块级作用域
-
函数作用域:函数内部的代码是有自己的作用域的
-
全局变量和局部变量
- 定义在函数内的变量,叫做局部变量
- 定义在script标签中的变量,叫做全局变量
- 在全局默认是不能访问局部变量的
- 在函数中,访问一个变量时,优先访问局部变量,如果找不到,才去访问全局变量
2.7.函数表达式
-
命名函数表达式:
- var abc = function test(){}
-
匿名函数表达式:
- var abc = function(){}
2.8.立即执行函数
- Immediately-Invoked Function Expression(IIFE 立即调用函数表达式)
- (function test(){})():执行完后会立即销毁
- (function(){}())
- 这个东西有什么用?
- 会创建一个独立的执行上下文环境,可以避免外界访问或修改内部的变量,也避免了对内部变量的修改