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");