es6之新方法
在es5的基础上,es6添加了一些新的方法具体如下:
1、数值方法
1、Number.isNaN() ; 本来是在window下的 判断是否是非数字的方法,转变到Number下后,效果也是一样,
不过如果是字符串的话 会先转化成number类型 也就是转换成了NaN,再判断,当然返回的就是false喽!
console.log(Number.isNaN(2)); //fasle
console.log(Number.isNaN('sdf')); //false
2、两个Math方法
1、Math.trunc(); //取整
console.log(Math.trunc(5.32)); //5
2、Math.sign(); //判断正数负数和零
console.log(Math.sign(2.6)); //1
console.log(Math.sign(-2.6));//-1
console.log(Math.sign(0)); //0
3、判断是否是整数:Number.isInteger()。
4、Number.isFinite() 检查是否是有限的。
2、数组方法
1、Array.of(),将任意一组值转换成数组
var name = 'guojunqiang';
console.log(Array.of(name)); //["guojunqiang"]
2、Array.from() 类数组(伪数组)转换成数组
var btn = document.getElementsByTagName('button');
console.log(btn); //HTMLCollection(5) [button, button, button, button, button]
console.log(Array.from(btn)); //(5) [button, button, button, button, button]
3、find() 查找符合条件的第一个元素,函数返回 未找到返回undefined
var arr = [1, 2, 3, 4, 5]
console.log(arr.find(function (value) {
// return value >3;
return value > 8; //undefined
}));
4、findIndex() 符合条件的第一个元素的位置 (索引位置) 如果未找到则返回-1
var arr = [1, 2, 3, 4, 5]
console.log(arr.findIndex(function (value) {
// return value > 6; //-1
return value > 3; //3
}));
5、fill() 填充 数组中的每一项或者某一项 后两个参数 是索引开始的位置和索引结束的位置,不包含结束的位置,包含开始的位置
var arr1 = [1, 2, 3, 4, 5];
console.log(arr1.fill('w')); //(5) ["w", "w", "w", "w", "w"]
console.log(arr1.fill('e', 1, 3)); //["w", "e", "e", "w", "w"]
6、entries() 遍历器返回键值对
for (let [k, v] of ['a', 'b', 'c'].entries()) {
console.log(k, v);
// 0 "a"
// 1 "b"
// 2 "c"
}
**key()**
for (let index of ['a', 'b', 'c'].keys()) {
console.log(index);
// 0
// 1
// 2
}
** values()**
for (let value of ['a', 'b', 'c'].values()) {
console.log(value);
// a
// b
// c
}
3、对象方法
1、属性名的更新,自定义变量名的改变
var f = 'first';
var n = 'Name';
var s = 'say';
var h = 'Hello';
var person = {
[f + n]: '郭俊强',
[s + h]() {
console.log('你好吗?我很好!');
}
}
console.log(person.firstName);//郭俊强
person.sayHello();//你好吗?我很好!
2、Object.is() 判断 ===
var str1 = '123';
var str2 = 123;
var res = Object.is(str1, str2)
console.log(res); //false
3、Object.assign() 将源对象的属性赋值给目标对象
var target = { 'name': 'zs' }
var source = { 'age': 18, "sex": '男' }
console.log(Object.assign(target, source)); //{name: "zs", age: 18, sex: "男"}
4、Object.getPrototypeOf() //获取对象原型属性
Object.setPrototypeOf() //设置对象原型属性
function Person() { }
Person.prototype = {
say() {
console.log('我是old的方法');
}
}
let p1 = new Person();
p1.say();
console.log(Object.getPrototypeOf(p1)); //{say: ƒ}
Object.setPrototypeOf(p1, {
say() {
console.log('我是新的方法');
}
});
p1.say(); //我是新的方法