JS-3 :函数 、数组

一. 函数

1.函数就是待执行的代码段

2.使用:

函数的声明,
函数的调用。

3.语法:

  function 函数名(参数列表){
    函数体;
    return 返回值;
  }  

解释

  1. JS中使用function关键字声明函数
  2. 函数自定义,命名规范参考变量的命名规范
  3. 参数表示函数体执行所需要使用的数据,可以省略,小括号不能省略。
  4. 函数体就是代码段,在函数调用时执行。
  5. return 表示返回值,用来返回给外界函数体执行的结果,返回值只能写一个值,return后面不能再写代码,return后面的代码都不执行。
  6. 函数调用:
    语法:函数名(参数列表)
    注意:如果函数存在返回值,需要定义变量接收
    var res = 函数名();

4.函数的作用:

  1. 封装代码段,实现某个功能
  2. 实现代码的复用
练习: 改写日期计算程序.........见: 01-日期计算器.html

5.匿名函数:

语法:

  1. var fn = function( ){ };
    定义变量保存函数地址,等同于函数名
    调用:fn( );

  2. 匿名函数自执行
    (匿名函数声明)(实际参数);

示例:03-匿名函数.html

6.函数内部对象

arguments 伴随函数调用自动产生,直接使用。
表示函数的实际参数,真正传入到函数内部的数据。本身也是类数组结构。

示例:04-arguments.html





二. 变量的作用域

1.作用域变:

指量起作用的范围 。

2.分类:

  1. 全局变量
    在全局作用域,程序的任意地方都可以访问

  2. 局部变量
    在函数作用域中可以访问,除了当前函数,外界无法访问。

3.变量的使用

  1. 函数外部定义的变量,都是全局变量,任意地方都可以访问
  2. 函数内部使用var关键字定义的变量,是局部变量,只在当前函数作用域中起作用,外界无法访问
  3. 函数内部省略var关键字定义的变量,都是全局变量
  4. 作用域链:
    访问变量时,会首先在当前作用域中查找有无该变量,有的话则直接使用;
    没有的话,到上一级作用域中查找,
    上一级也没有,再向上查找…
    直到全局作用域,形成从里到外的链式查找。




三. 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. 数组的使用:

  1. 数组元素的下标
    默认为每个元素自动分配下标,取值范围(0 ~ lenght-1)

  2. lenght 属性
    获取数组中元素的个数
    使用点语法访问对象的属性与方法
    例: arr.lenght;

  3. JS中数组长度是可以动态修改的,可以向数组任意一个位置插入元素,影响最终长度。

4. 遍历数组。

借助循环访问数组中的每一个元素。

  1. 普通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])
}  
  1. for-in (了解)
  2. 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)
在数组的末尾添加元素,多个元素之间之间使用逗号隔开。
返回值:新数组的长度。
注意:直接向数组添加元素,原始数组会被改变。

  1. 操作数组的头部元素

在数组头部追加元素
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并给出提示。   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值