-
typeof
返回变量类型
var a = 33
console.log(typeof a) // number
-
instanceof A instanceof B 检测B.prototype是否存在于A的原型链上。
判断一个对象是不是另外一个对象的实例
简单用法:
function Person(){};
var p =new Person();
console.log(p instanceof Person);//true
复杂用法:
function Person() {}
console.log(Object instanceof Object); // true
//第一个Object的原型链:Object=>
//Object.__proto__ => Function.prototype=>Function.prototype.__proto__=>Object.prototype
//第二个Object的原型:Object=> Object.prototype
-
字符串方法:
1.查找字符串中的字符串
indexOf()
lastIndexOf()
search() //方法返回字符串中指定文本第一次出现的位置
2. 截取字符串长度
slice(start, end)
substring(start, end)
substr(start, length)
3. replace() 替换
4. 大小写
toLowerCase()
toUpperCase() // 使用正则表达式 /i(大小写不敏感)
5. 链接字符串
concat()
6. 首尾去空格
trim()
7. 提取字符串字符
charAt(position)
var str = "HELLO WORLD";
str.charAt(0); // 返回 H
charCodeAt(position)
// 方法返回字符串中指定索引的字符 unicode 编码:
8. 把字符串转换为数组
split()
var str = "Hello";
var arr = str.split(""); // ["H", "e", "l", "l", "o"]
-
数组方法
1. 判断是否为数组
1. Array.isArray(Arr1)
2. Arr1 instanceof Array
3. 假如对象原型包含单词 "Array" 则返回 true。
function isArray(x) {
return x.constructor.toString().indexOf("Array") > -1;
}
2.数组转字符串
2.1 toString()
2.2 join()
3. 新增 删除数组
新增:
3.1 Push() 末尾增加
3.2 unshift() 开头增加
删除:
3.1 pop() 末尾删除
3.2 shift() 开头删除
4. 拼接数组
splice()
splice(1,1,'demo') // 从索引为1,删除1个,新增一个demo
5. 裁剪数组
slice()
slice(2,3) 从索引2开始,裁到索引3 不包括索引3(只裁剪索引2)
6. 排序
sort()
A.sort(function(a,b)=>{
return a - b // 升序
return b - a // 降序
return a.year-b.year // 数组里对象一样使用
})
7. 翻转数组
reverse()
8. forEach()
map()
filter()
reduce()
every() // 检查所有数组值是否通过测试 一个没有就是false
some() //返回通过测试函数的第一个数组元素的值,有一个正确就是true
find() //返回通过测试函数的第一个数组元素的值
indexOf() // 查到就是索引没有查到返回-1
includes() // 字符串 数组都可以用 包含返回true 不包含false
求和
let arr = [1,2,3,4,5]
let result = arr.reduce((prev,cur)=>{
return prev+cur
})
console.log(result)
简单去重
let arr = [1,2,3,4,5,2,3]
let result = arr.reduce((prev,cur)=>{
if (!prev.includes(cur)){
prev.push(cur)
}
return prev
},[])
console.log(result)
-
bind call apply
var name = '盖伦'
var age = 18
var obj = {
name: "寒冰",
age: 20,
objAge: this.age,
myFun: function (f, t) {
console.log(f,t);
return console.log(this.name + this.age + f + t);
}
}
var demo = {
name: 'jack',
age: 200
}
console.log(obj.myFun.call(demo, '美国', 'porsche'));
// console.log(obj.objAge); // 18
// console.log(obj.myFun()); // 寒冰20
1. call(this的指定对象,参数1,参数2)
2. apply(this的指定对象,[参数1,参数2])
3. bind(this的指定对象,参数1,参数2)()
3. bind(this的指定对象,[参数1,参数2])()