首页 > 代码库 > 6.13js查阅
6.13js查阅
concat: concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
every: every() 方法测试数组的所有元素是否都通过了指定函数的测试。
find: 如果数组中某个元素满足测试条件,find() 方法就会返回满足条件的第一个元素,如果没有满足条件的元素,则返回 undefined。
indexOf: indexOf()方法返回给定元素能找在数组中找到的第一个索引值,否则返回-1。
forEach: forEach() 方法对数组的每个元素执行一次提供的函数(回调函数)。
reverse: 功能颠倒字符串中字符顺序,要颠倒字符次序的字符串返回值String。
join:join() 方法将数组中的所有元素连接成一个字符串。
pop: pop() 方法删除一个数组中的最后的一个元素,并且返回这个元素。
push: push() 方法添加一个或多个元素到数组的末尾,并返回数组新的长度(length 属性值)。
shift:shift() 方法删除数组的 第一个 元素,并返回这个元素。该方法会改变数组的长度。
slice: slice() 方法会浅复制(shallow copy)数组的一部分到一个新的数组,并返回这个新数组。
toLocaleString: 这个函数用于以字符串的形式返回当前Date对象时间日期有两种,一种是给机器看的,就是一排数字,另外一种就是让人能看懂的时间格式,那么人 看的这种格式就是本地格式。对于本地格式,每个浏览器的呈现方式也不尽相同
splice:splice() 方法用新元素替换旧元素,以此修改数组的内容。
unshift: unshift() 方法在数组的开头添加一个或者多个元素,并返回数组新的 length 值。
什么叫原型
在JavaScript 中,每当定义一个对象(函数)时候,对象中都会包含一些预定义的属性。其中函数对象的一个属性就是原型对象 prototype。注:普通对象没有prototype,但有__proto__属性。
原型对象其实就是普通对象(Function.prototype除外,它是函数对象,但它很特殊,他没有prototype属性(前面说道函数对象都有prototype属性))。看下面的例子:
function f1(){};
console.log(f1.prototype) //f1{}
console.log(typeof f1. prototype) //Object
console.log(typeof Function.prototype) // Function,这个特殊
console.log(typeof Object.prototype) // Object
console.log(typeof Function.prototype.prototype) //undefined
从这句console.log(f1.prototype) //f1 {} 的输出就结果可以看出,f1.prototype就是f1的一个实例对象。就是在f1创建的时候,创建了一个它的实例对象并赋值给它的prototype,基本过程如下:
var temp = new f1();
f1. prototype = temp;
所以,Function.prototype为什么是函数对象就迎刃而解了,上文提到凡是new Function ()产生的对象都是函数对象,所以temp1是函数对象。
var temp1 = new Function ();
Function.prototype = temp1;
那原型对象是用来做什么的呢?主要作用是用于继承。举了例子:
var person = function(name){
this.name = name
};
person.prototype.getName = function(){
return this.name;
}
var zjh = new person(‘zhangjiahao’);
zjh.getName(); //zhangjiahao
从这个例子可以看出,通过给person.prototype设置了一个函数对象的属性,那有person实例(例中:zjh)出来的普通对象就继承了这个属性。具体是怎么实现的继承,就要讲到下面的原型链了。
原型链
JS在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__的内置属性,用于指向创建它的函数对象的原型对象prototype。以上面的例子为例:
console.log(zjh.__proto__ === person.prototype) //true
同样,person.prototype对象也有__proto__属性,它指向创建它的函数对象(Object)的prototype
console.log(person.prototype.__proto__ === Object.prototype) //true
继续,Object.prototype对象也有__proto__属性,但它比较特殊,为null
console.log(Object.prototype.__proto__) //null
6.13js查阅