数组的创建 通过数组的字面量创建数组
var arr = []
二维数组 var arr = [[1,1,4,5],[ ], [ ]]
获取数组的长度 arr.length
数组push方法 数组名。push() 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
arr.push()
函数
把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数。起个名字(函数名),在后续开发中可以反复调用。函数的作用就是封装一段代码,将来可以重复使用
函数的声明
function 函数名(){
函数体
}
var function 函数名(){
函数体
}
函数的调用
函数名();
函数的特点 :函数体只有在调用的时候才会执行,调用需要()进行调用。可以调用多次(重复使用)
形参和实参
1. 形式参数:在声明一个函数的时候,为了函数的功能更加灵活,有些值是固定不了的,对于这些固定不了的值。我们可以给函数设置参数。这个参数没有具体的值,仅仅起到一个占位置的作用,我们通常称之为形式参数,也叫形参。
2. 实际参数:如果函数在声明时,设置了形参,那么在函数调用的时候就需要传入对应的参数,我们把传入的参数叫做实际参数,也叫实参。
function 函数名(形参1, 形参2, 形参...){
//函数体
return 返回值;
}
var 变量 = 函数名(实参1, 实参2, 实参3);
返回值总结
1、如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined
2、如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值
3、如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined
4、函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说return后面的所有其他代码都不会再执行。
函数是引用数据类型 因为函数也是一种类型,可以把函数作为参数传入 因为函数是一种类型,可以把函数作为参数反出
函数的内置对象
JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数组,因此也可以进行遍历。
arguments数组中前几个元素是函数的参数
callee属性:函数的本身
callee.name:函数的名字
length属性:实参的个数
callee.length:形参的个数
匿名函数的使用
(function () {
alert(123);
})()
预解析:
JavaScript引擎在对JavaScript代码进行解释执行之前,会对JavaScript代码进行预解析,在预解析阶段,会将以关键字var和function开头的语句块提前进行处理。
当变量和函数的声明处在作用域比较靠后的位置的时候,变量和函数的声明会被提升到作用域的开头,然后就是变量提升 但是提升的只是变量的声明,当出现变量声明和函数同名的时候,只会对函数声明进行提升,变量会被忽略,函数表达式不会提升。
作用域:
JavaScript中的对象
创建js对象的方式有4中
对象字面量:
var o = {
name:'刘世龙',
age: 22,
sex: '女'
};
new Object()创建对象:
var person = new Object();
person.name = '刘世龙';
person.age = '22';
person.sex = '女' ;
工厂函数创建对象:
function createPerson(name, age, sex) {
var person = new Object();
person.name = name;
person.age = age;
person.sex = sex;
return person;
}
var p1 = createPerson('刘世龙', 22, '女');
自定义构造函数:
function Person(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
var p1 = new Person('刘世龙', 22, '女');
JavaScript错误 参考java的 try......catch 和throw