对象object
对象是JavaScript中除基本数据类型(上篇)外的最后一种数据类型–引用/复合数据类型,在对象中可以保存多个不同数据类型的属性。
- 对象的分类
1) 内建对象–由ES标准定义的对象。
内建对象 | 内容 |
---|---|
数据封装对象 | Object Array Boolean Number String |
其他对象 | Math Date Function Error RegExp Argument |
2) 宿主对象–由JS的运行环境提供的对象。如BOM/DOM等。
3) 自定义对象
- 创建对象
方式一. 使用object对象
语法:var 对象名=new Object();
方式二. 使用字面量创建
语法:var 对象名={属性名1:属性值,属性名2:属性值,…属性名n:属性值}
*JS对象的属性值,可以是任意的数据类型,也可以是一个对象。 - 操作对象
- 添加对象属性。
语法a:对象名.属性名=属性值;
如:obj.name=“数据”;
语法b:对象名[属性名]=属性值;
如:obj[“名字”]=“数据”;
*语法b更加灵活,可以使用特殊的属性名或变量,可添加引号。 - 读取对象属性。
语法a:对象名.属性名
如:console.log(obj.name);
语法b:对象名[属性名]
如:console.log(obj[“名字”]);
*如果读取对象中没有的属性,会返回undefined。 - 修改对象属性
语法a:对象名.属性名=属性值;
如:obj.name=“数据2”;
语法b:对象名[属性名]=属性值;
如:obj[“名字”]=“数据2”; - 删除对象属性
语法a:delete 对象名.属性名;
如:delete obj.name;
语法b:delete 对象名[属性名];
如:delete obj[“名字”];
函数function
函数也是一个对象
在函数中可以封装一些功能(代码),在需要时可以调用函数
使用typeod运算符检查函数对象时,返回function
- 创建函数
方式一 使用function对象
语法:var 函数名=new Function(‘语句’); --内容是字符串,需要加引号
方式二 使用function声明
语法:function 函数名(形参1,形参2…形参n){语句…}
方式三 使用function表达式
语法:var 函数名=function(形参1,形参2…形参n){语句…} - 调用函数
函数对象(实参1,实参2…实参n)
*当调用函数时,函数中封装的代码会按照顺序执行 - 函数的参数
调用函数时解析器不会检查实参的类型,所以要注意是否有可能会接收到非法的参数;
调用函数时解析器也不会检查实参的数量,多余的实参不会被赋值;如果实参的数量小于形参的数量,则没有对应实参的形参取值为undefined。
实参可以是任意的数据类型,可以是一个函数,也可以是一个对象。
fun(mianji(10));
当参数过多时,可以将参数封装到一个对象中,通过参数来传递。
function fun4(o){ alert(o.name+o.age+o.address); } var obj={ name:'孙悟空', age:23, address:'花果山' } fun4(obj);
- 函数的返回值
可以使用return来设置函数的返回值。在函数中return后的语句都不会执行。
可以定义一个变量,来保存函数的执行结果,函数返回什么变量的值就是什么。
如果return语句后不跟任何值就相当于返回一个undefined。
如果函数中不写return,则也会返回undefined。
函数的返回值可以是任意的数据类型,可以是一个对象,也可以是一个函数。
function fun5(){ function fun6(){ alert('我是函数中的函数'); } return fun6; } fun5()();