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
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(); //我是新的方法