javascript基础复习
instanceof
- 语法: 对象 instanceof 构造函数
判断构造函数的原型是否在该对象的原型链上
Function
可当做构造函数,其原型是空函数,其原型的原型是Object.prototype(空对象).
在当前对象中,调用当前对象的其他方法,需要使用this
数组和字符串相关API
数组方法
1.slice(索引, 索引) 截取: 原数组不会改变 一个参数索引包左不包右
var arr = [1, 2, 3, 4, 5];
arr.slice(); //[1, 2, 3, 4, 5] ==> arr=[1, 2, 3, 4, 5]
arr.slice(0); //[1, 2, 3, 4, 5] ==> arr=[1, 2, 3, 4, 5]
arr.slice(-1); //[5] ==> arr=[1, 2, 3, 4, 5]
arr.slice(2); //[3, 4, 5] ==> arr=[1, 2, 3, 4, 5]
arr.slice(0, 2); //[1,2] ==> arr=[1, 2, 3, 4, 5]
2.splice(索引, 个数, 替换内容) 删除/替换: 原数组会改变 返回删除截取出来的数组,原数组为剩下的内容组成的数组
var arr = [1, 2, 3, 4, 5];
arr.splice(); // [] ==> arr=[1, 2, 3, 4, 5];
arr.splice(0); // [1, 2, 3, 4, 5] ==> arr=[];所以可用来清空数组
arr.splice(-1); // [5] ==> arr=[1, 2, 3, 4];
arr.splice(2); // [3, 4, 5] ==> arr=[1, 2];
arr.splice(0, 3); // [1, 2, 3] ==> arr=[4, 5];
arr.splice(0, 2, '9', '8', '7'); // [1, 2] ==> arr=["9", "8", "7", 3, 4, 5];
3.push:数组尾部添加, 返回个数
4.pop:数组尾部删除,返回取出的那个值
5.unshift:数组头部添加, 返回个数
6.shift:数组头部删除,返回取出的那个值(都是对原数组进行操作)
7.indexOf:查索引, 未找到返回 -1
8.lastIndexOf:从后往前查索引,索引值不会变
9.valueOf:返回原数组
10.toLocaleString:转为字符串
11.toString: 同Array.join()方法
var aaa = [1, 2, 3, 4, 5]
aaa.toString()
"1,2,3,4,5"
12.isArray 判断是否是数组,是的话返回true
13.join 转换成字符串
var arr = [1, 2, 3, 4, 5];
arr.join() // 1,2,3,4,5
arr.join('') // 12345
arr.join(' ') // 1 2 3 4 5
arr.join(',') // 1,2,3,4,5
arr.join('|') // 1|2|3|4|5
arr.join('&') // 1&2&3&4&5
14.sort 排序
15.reverse 数组反转
16.concat / Array.prototype.push.apply(arr1,arr2) 数组合并
concat: arr1.concat(b) :
将后一个数组合并到前一个数组, 作为新数组返回, 原数组不会改变;
合并时的长度无限制
Array.prototype.push.apply(arr1,arr2):
数组合并后返回新数组的个数, arr1改变, arr2不变;
合并时长度一般不超过十万
var a = [1,2,3];
var b = [4,5];
b.concat(a) // [4, 5, 1, 2, 3, 4, 5]
console.log(b); // [4, 5]
console.log(a); // [1, 2, 3, 4, 5]
Array.prototype.push.apply(a,b) // 5
console.log(a); // [1, 2, 3, 4, 5]
console.log(b); // [4, 5]
字符串方法
1.split 劈成数组
var str = "I Love You";
str.split() // ["I Love You"]
str.split('') // ["I", " ", "L", "o", "v", "e", " ", "Y", "o", "u"]
str.split(' ') // ["I", "Love", "You"]
var str1 = "I|Love|You";
str1.split() // ["I|Love|You"]
str1.split('') // ["I", "|", "L", "o", "v", "e", "|", "Y", "o", "u"]
str1.split(' ') // ["I|Love|You"]
str1.split('|') // ["I", "Love", "You"]
2.slice(索引, 索引) : 截取 原字符串不会改变
var str = "abcdefg"
str.slice(); // abcdefg ==> str='abcdefg';
str.slice(''); // abcdefg ==> str='abcdefg';
str.slice(0); // abcdefg ==> str='abcdefg';
str.slice(-2); // fg ==> str='abcdefg'; 负数从后往前截
str.slice(1); // bcdefg ==> str='abcdefg';
str.slice(2,5); // cde ==> str='abcdefg';
3.substring(索引, 索引): 截取
var str = "abcdefg"
str.substring(0); // abcdefg ==> str='abcdefg';
str.substring(-1); // abcdefg ==> str='abcdefg'; 负数的话全部截取
str.substring(1,3); // bc ==> str='abcdefg';
str.substring(4,2); // (智能调换索引值) cd ==> str='abcdefg';
4.substr(索引, 长度): 截取
var str = "abcdefg"
str.substr(0); // abcdefg ==> str='abcdefg';
str.substr(-2); // fg ==> str='abcdefg'; 负数从后往前截
str.substr(1,3); // bcd ==> str='abcdefg';
str.substr(4,2); // ef ==> str='abcdefg';
5.trim 去除前后空白
" aa bb cc ".trim()
"aa bb cc"
6.replace(a,b) 后边的替换前边的
7.concat 字符串连接
8.toUpperCase 字符串转大写
9.toLowerCase 字符串转小写
10.charAt:返回指定索引的字符
11.charCodeAt:返回指定位置字符的Unicode编码
'abcdef'.charAt() // "a"
'abcdef'.charAt(2) // "c"
'abcdef'.charCodeAt() // 97
'abcdef'.charCodeAt(2) // 99
数字转换成字符串的三种方法
- String(n1);
- n1.toString();
- n1 + 'abc'
去除字符串前后空白字符的兼容写法
var str = " hello world ";
if(!String.prototype.trim){
String.prototype.trim = funcion(){
return this.replace(/^\s+/,'').replace(/\s+$/,'');
}
}