JavaScript(3)

来源:互联网 发布:数据库系统的二级映射 编辑:程序博客网 时间:2024/06/06 00:11

JavaScript


JavaScript 函数

1.JavaScript 变量的生存期

JavaScript 变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。

2.向未声明的 JavaScript 变量分配值

如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。
这条语句:

    carname = "Volvo";

将声明一个全局变量 carname,即使它在函数内执行。

3. JavaScript 参数

  • 返回值

函数没有返回值时,其返回值是undefined

- 通过值传递参数

在函数中调用的参数是函数的隐式参数。
JavaScript 隐式参数通过值来传递:函数仅仅只是获取值。
如果函数修改参数的值,不会修改显式参数的初始值(在函数外定义)。
隐式参数的改变在函数外是不可见的。

  • 通过对象传递参数

在JavaScript中,可以引用对象的值。
因此我们在函数内部修改对象的属性就会修改其初始的值。
修改对象属性可作用于函数外部(全局变量)。
修改对象属性在函数外是可见的。

4.JavaScript 匿名函数

函数表达式可以存储在变量中,变量可以作为一个函数使用,也可以将匿名函数作为参数传递给其他函数,如果需要完成一次性的任务,可以用匿名函数

5.JavaScript 函数的重载

允许在同一范围内声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数或类型或顺序)必须不同,也可以说同一个运算符完成不同的运算功能,称之为重载函数
- 函数有不同的参数
- 函数有不同的参数类型

在JavaScript中,如果函数名一样会出现覆盖的情况,无法实现函数的重载
JavaScript并没有重载函数的功能,但是arguments对象可以模拟重载

JavaScript中每个函数都会有一个arguments对象实例arguments,它引用着函数的实参,可以用数组的下标方式”[]”引用arguments的元素

  • arguments.length 函数实参的个数
  • arguments.callee 引用函数自身

    // 通过这种方式你可以很方便的找到最大的一个参数的值:x = findMax(1, 123, 500, 115, 44, 88);function findMax() {    var i, max = arguments[0];    if(arguments.length < 2) return max;    for (i = 0; i < arguments.length; i++) {        if (arguments[i] > max) {            max = arguments[i];        }    }    return max;}// 创建一个函数用来统计所有数值的和x = sumAll(1, 123, 500, 115, 44, 88);function sumAll() {    var i, sum = 0;    for (i = 0; i < arguments.length; i++) {        sum += arguments[i];    }    return sum;}

6.JavaScript 数组

数组是值得有序集合,每个值是数组的一个元素,每一个元素在数组都有一个位置,称为索引
- JavaScript数组是无类型的,数组的元素可以使任意类型,并且同一个数组中的元素可以是不同类型
- 数组的长度是可以动态变化的,可以添加和删除元素
- Array数组数组的有序列表,索引从0开始
- 他同一个数组可以存储不同类型的数据,也可以没有类型,但是每一个数组都有length属性

    var aColor = ["black", "green", "blue"];    var num = [1, 2, 3];    var empty = [];    var wrong = [1,3,4,];//不要这样创建数组    var people = new Array(5);    people[0] = "WangHao";    peopel[1] = "LiuQian";    var places = new Array("CN", "UK", "USA", "JP");