查询文档
MDN
W3C
对象
1.对象:可以让代码结构更清晰
2.对象:复杂数据类型object
3.本质:对象就是一组无序的相关属性和方法的集合。
4.构造函数泛指某一大类,比如苹果,不管是红色苹果还是绿色苹果,都统称为苹果。
5.对象实例特指一个事物,比如这个苹果、正在给你们讲课的pink老师等。
6. for…in语句用于对对象的属性进行循环操作。
一,js的对象有三种:
1.自定义对象
2.内置对象
3.浏览器对象(特有)
二, 对象创建
var obj = {
name: "pink老师",age: 18,
sex:'男',
fn: function(){}
}
三,取得对象属性和属性值
使用遍历for in
k变量输出得到的是属性名
obj[k]得到是属性值
for (var k in obj){
console.log(k);
console.log(obj[k]);
}
四,arguments对象
arguments对象是所有(非箭头)函数中都可用的局部变量(可用在不能确定数组长度时使用,arguments.length
)。
你可以使用arguments对象在函数中引用函数的参数。
此对象包含传递给函数的每个参数,第一个参数在索引0处。arguments[0]
五,对象封装
利用对象封装自己的数学对象﹑里面有PI属性,取最大值方法
var myMax = {
PI: 3.141592653,
max: function() {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++){
if (arguments[i] > max)i
max = arguments[i];
}
return max;
}
}
使用
console.log(myMath.PI);
console.log(myMath.max(1,5,9));
六,内置对象的使用:
七,数据类型:
简单类型与复杂类型
-
简单类型:
又叫做基本数据类型或者值类型,在存储时变量中存储的是值本身,值存放在栈中。 -
复杂类型:
又叫做引用类型。通过new关键字创建的对象(系统对象、自定义对象),如Object、Array、Date等。栈空间里存放的是地址,真正的对象实例存放在堆空间中
内存分配图:
简单类型传参
函数的形参也可以看做是一个变量 ,当我们把一个值类型变量作为参数传给函数的形参时 ,其实是把变量在栈空间里的值复制了一份给形参 ,那么在方法内部对形参做任何惨改。都不会影响到的外部变量
function fn(a) {
a++;
console.1og(a) ;
}
var x =10;
fn (x);
console.1og (x);
输出:a =11 ,x=10
复杂类型传参
函数的形参也可以看做是一个变量,当我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地址复制给了形参,形参和实参其实保存的是同一个堆地址,所以操作的是同一个对象。