1.Array对象是用来构造数组的全局函数
用法:
1.var a = Array[3] //数组的长度为3,__prpto__指向Array.prototype
var b = Array[3 , 3] //长度为2,内容为[3,3]的数组
2.var a = new Array[3]
和上面一样
以上两种方式都等价于:
var a = [3]
2.number,string,boolean,声明时加不加new不一样
比如: Number()
=>基本类型
new Number()
=> Number对象
3.object(包括array和function),声明时加不加new都一样
比如: Object(1)
=> 对象
new Object(1)
=> 对象
4.Function
创建方法:
1.var fn = new Function('a','b','return a+b')
2.var fn = Function('a','b','return a+b')
Function是对象,创建时,加不加new都一样。
5.数组
数组是用Array构造出来的一种对象
var a = [1, 2, 3]
和 var obj = {0:1,1:2,2:3,length: 3}
数组和对象的根本区别是:
数组的__proto__
指向Array.prototye
对象的__proto__
指向Object.prototype
6.for和forin的区别
var a = [1,2,3];
a.xxx = 'xxx';
a.yyy = 'yyy';
a)
for(let i = 0; i< a.length; i++){
console.log(i) //1,2,3
}
for默认只遍历key为数字的值,不打印xxx和yyy
b)
for(let key in a){
console.log(key) // 1,2,3,xxx,yyy
}
forin遍历所有值
7.伪数组
伪数组就是指__proto__
没有指向Array.prototype的对象。
arguments就是一个典型的伪数组,__proto__
指向Object.prototype。
function f(){
console.log(arguments) //undefined
}
arguments是表示函数的参数。
网友评论