slice :
var arr = [1, 2, 3, 4, 5, 6];
var newArr = arr.slice(1, 3); // [2,3]
var newArr2 = arr.slice(1); //[2,3,4,5,6]
var newArr3 = arr.slice(-3); //[4,5,6]
join:
var arr = [1, 2, 3];
var newArr = arr.join('-'); //1-2-3
split:
var a = '1-2-3';
var newArr = a.split('-'); //[1, 2, 3]
例1.
var str = 'alibaba';
var str1 = 'baidu';
var str2 = 'tencent';
var str3 = 'toutiao';
var str4 = 'wangyi';
var str5 = 'xiaowang';
var arr = [str, str1, str2, str3, str4, str5];
var newArr = arr.join(''); //alibababaidutencenttoutiaowangyixiaowang
类数组:
function test() {
console.log(arguments);
arguments.push(4);
}
test(1, 2, 3); //arguments.push is not a function
称为类数组
var obj = {
'0': 'a',
'1': 'b',
'2': 'c',
'length': '3',
'push': Array.prototype.push
}
// obj.push('d');
// obj;
// {
// '0': 'a',
// '1': 'b',
// '2': 'c',
// '3':'d',
// 'length': '3',
// 'push': Array.prototype.push
// }
var obj = {
'2': 'a',
'3': 'b',
'length': '4', //length 是几就在第几位上push元素
'push': Array.prototype.push,
// 'splice': Array.prototype.splice
}
obj.push('c');
obj.push('d');
// obj: {
// '2': 'c',
// '3': 'd',
// 'length': '4',
// 'push': Array.prototype.push,
// }
//属性要为索引(数字)属性,必须有length属性,最好加上push
// Array.prototype.push = function (target) {
// obj[obj.length] = target;
// obj.length++;
// }
既能当数组又可以当对象用:
//既能当数组又可以当对象用
var obj = {
'0': 'a',
'1': 'b',
'2': 'c',
name: 'abc',
age: 123,
length: 3,
push: Array.prototype.push,
splice: Array.prototype.splice
}
for (var prop in obj) {
console.log(obj[prop]);
}
封装typeof :
function type(target) {
var ret = typeof (target);
var template = {
'[object Array]': 'array',
'[object Object]': 'object',
'[object Number]': 'number - object',
'[object Boolean]': 'boolean - object',
'[object String]': 'string - object',
}
if (target == null) {
return null;
} else if (ret == 'object') {
var str = Object.prototype.toString.call(target);
return template[str];
} else {
return ret;
}
}
//1.原始值 引用值
//2.区分引用值