一. 函数
1.函数就是待执行的代码段
2.使用:
函数的声明,
函数的调用。
3.语法:
function 函数名(参数列表){
函数体;
return 返回值;
}
解释:
- JS中使用function关键字声明函数
- 函数自定义,命名规范参考变量的命名规范
- 参数表示函数体执行所需要使用的数据,可以省略,小括号不能省略。
- 函数体就是代码段,在函数调用时执行。
- return 表示返回值,用来返回给外界函数体执行的结果,返回值只能写一个值,return后面不能再写代码,return后面的代码都不执行。
- 函数调用:
语法:函数名(参数列表)
注意:如果函数存在返回值,需要定义变量接收
var res = 函数名();
4.函数的作用:
- 封装代码段,实现某个功能
- 实现代码的复用
练习: 改写日期计算程序.........见: 01-日期计算器.html
5.匿名函数:
语法:
-
var fn = function( ){ };
定义变量保存函数地址,等同于函数名
调用:fn( ); -
匿名函数自执行
(匿名函数声明)(实际参数);
示例:03-匿名函数.html
6.函数内部对象
arguments
伴随函数调用自动产生,直接使用。
表示函数的实际参数,真正传入到函数内部的数据。本身也是类数组结构。
示例:04-arguments.html
二. 变量的作用域
1.作用域变:
指量起作用的范围 。
2.分类:
-
全局变量
在全局作用域,程序的任意地方都可以访问 -
局部变量
在函数作用域中可以访问,除了当前函数,外界无法访问。
3.变量的使用:
- 函数外部定义的变量,都是全局变量,任意地方都可以访问
- 函数内部使用var关键字定义的变量,是局部变量,只在当前函数作用域中起作用,外界无法访问
- 函数内部省略var关键字定义的变量,都是全局变量
- 作用域链:
访问变量时,会首先在当前作用域中查找有无该变量,有的话则直接使用;
没有的话,到上一级作用域中查找,
上一级也没有,再向上查找…
直到全局作用域,形成从里到外的链式查找。
三. JS 内置对象
1.对象由属性和方法组成。
2.分类:
Array String RegExp Math Date…
3. Array 数组
1. 什么是数组?
数组是一种存储结构,可以存储一组数据,自动为每个元素分配下标,默认从0开始。
2. 语法:
1.字面量方式
var arr1 = [10,'20,',true];
2.new 关键字创建
//创建的同时初始化元素
var arr2 = new Array(10,20,30);
//只传入一个number值,表示指定数组长度
var arr3 = new Array(5);
3. 数组的使用:
-
数组元素的下标:
默认为每个元素自动分配下标,取值范围(0 ~ lenght-1) -
lenght 属性
获取数组中元素的个数
使用点语法访问对象的属性与方法
例: arr.lenght; -
JS中数组长度是可以动态修改的,可以向数组任意一个位置插入元素,影响最终长度。
4. 遍历数组。
借助循环访问数组中的每一个元素。
- 普通for循环
for(var i = 0; i < arr.lenght; i++){
console.log(arr[i])
}
for(var j = arr.lenght-1; j >=0; j--){
console.log(arr[j])
}
- for-in (了解)
- forEach() (了解)
示例:06-array.html
练习:
1. 循环接收用户输入的数据,保存在数组中,直到用户输入exit表示结束,结束之后输出数组。
2. 创建一个包含数值的数组,找这一个数组中的最大值。
3. 创建只有三个数字的数组,按照从小到大排序后输出。
5. 数组方法
1. toString();
将数组元素转换成字符串输出,返回一个字符串。
2. join();
将数组中元素拼接成一个字符串并返回。
参数:可选,表示元素之间的连接字符。
示例:08-array-API.html
3.reverse()
反转数组元素,以倒序形式重新排列数组元素
[10,20,30] --> [30,20,10]
返回值:返回转换后的数组,
4.sort()
对数组中的元素排序,默认按照元素的【Unicode码值】升序排列,会改变数组原有的结构和顺序。
返回值: 返回排序后的数组,原数组也会改变。
参数: 可选,可以是自定义的排序函数。
示例:
针对number类型,从小到大排列
function sortASC(a,b){
return a-b;
}
arr.sort(sortASC);
解释说明:
自动将数组中数据两两传入,比较大小,
a-b表示从小到大排列,b-a表示从大到小排列。
5. 数组的进出栈操作
栈与队列都是存储结构.
特点:
栈:只有一个出入口,数据按顺序存入,先进后出.
队列:先进先出.
数组采用【栈】结构存储。
方法介绍:
1.操作数组尾部元素
push(data)
在数组的末尾添加元素,多个元素之间之间使用逗号隔开。
返回值:新数组的长度。
注意:直接向数组添加元素,原始数组会被改变。
- 操作数组的头部元素
在数组头部追加元素
unshift();
参数:一个或多个元素
返回值:数组长度
移除数组头部元素
shift();
返回被移除的元素
无参数!!
练习:
随意录入一个数字,转换成二进制并且输出
示例:09-lianxi.html
6. 二维数组
1. 数组中每个元素又都是数组
语法:
一维数组:[10,20,30]
二维数组:[[1,2,3],[4,5,6],[7,8,9]]
2. 二维数组的访问
语法:
一维数组访问: arr[ ]
二维数组访问: arr[0][0]; --> 表示访问第一个内层数组中下标为0的元素
练习:
声明包含若干数字的数组,接收用户输入的数字,
遍历数组,查找数据,如果数组存在相应的数据,返回下标,若不存在,返回-1并给出提示。