ES6 数值、数组、对象、函数方法
ES6中数值的用法
-
Number.isNaN()函数:用于判断传入的是否是非数值 , NaN(非数值),才返回true
-
console.log(Number.isNaN(2.5)); //false
-
console.log(Number.isNaN('abc')); //false
-
console.log(Number.isNaN(NaN)); //true
-
umber.isFinite() 函数 用来检查一个数值是否非无穷 只有无穷大时才为false
-
console.log(Number.isFinite(555)); //true
-
console.log(Number.isFinite(Infinity)); //false
-
Number.parseInt()函数 :解析一个字符串,返回一个整数
-
Number.parseFloat() 解析字符串,返回碰到第一个非数字返回
-
console.log(parseInt('12.55as')); //12
-
console.log(Number.parseInt('12.55as')); //12
-
console.log(Number.parseFloat('12.55as')); //12.55
-
Number.isInteger()函数 用来判断是否是整数
-
console.log(Number.isInteger(3.5)); //false
-
console.log(Number.isInteger(3.0)); //true
-
Math.trunc()函数 用于去除一个数的小数部分,返回整数部分。
-
console.log(Math.trunc(3.0)); //3
-
console.log(Math.trunc(3.55)); //3
-
Math.sign()函数 用来判断一个数到底是正数、负数、还是零。
-
console.log(Math.sign(-3)); //-1
-
console.log(Math.sign(0)); //0
-
console.log(Math.sign(3)); //1
ES6数组方法
-
Array.of()函数 将一组值,转换成数组。
-
var str = "123abc";
-
var res = Array.of(str);
-
console.log(res); //["123abc"]
-
Array.from() 函数 可以将类似数组(伪数组)的对象或者可遍历的对象转换成真正的数组。
-
var box = document.getElementsByTagName('div');
-
console.log(box instanceof Array); //false
-
console.log(Array.from(box) instanceof Array); //true
-
find()函数 找出数组中符合条件的第一个元素。
-
let ary = ['a', 'b', 'c', 'd', 1, 2, 3];
-
var res2 = ary.find(function (value) {
-
return value > "a";
-
});
-
console.log(res2); //b
-
findIndex() 函数 返回符合条件的第一个数组成员的位置。有符合元素返回位置索引,没有符合元素返回-1
-
var res4 = ary.findIndex(function (value) {
-
return value > "a";
-
});
-
var res5 = ary.findIndex(function (value) {
-
return value > "d";
-
});
-
console.log(res4); //1
-
console.log(res5); //-1
-
fill()函数 用指定的值,填充到数组。从位置 第二个参数 的元素开始填充 第一个参数,截止到位置 第三个参数 之前
-
console.log(ary); // ["a", "b", "c", "d", 1, 2, 3]
-
ary.fill('o', 1, 4);
-
console.log(ary); // ["a", "o", "o", "o", 1, 2, 3]
-
entries() 函数 对数组的键值对进行遍历,返回一个遍历器,可以用for..of对其进行遍历。
-
for (let [i, v] of ['a', 'b', 'c'].entries()) {
-
console.log(i, v); //0 "a" 1 "b" 2 "c"
-
}
-
keys() 函数 对数组的索引键进行遍历,返回一个遍历器。
-
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
-
}
ES6对象方法
-
ES6中的简写
-
var name = '李四'; var age = 18;
-
var person1 = { name, age, say() {
-
console.log('ES6') } };
-
console.log(person1); //{name: "李四", age: 18, say: ƒ}
-
属性名的更新 用字面量定义一个对象的时候,可以用表达式作为对象的属性名或者方法名。
-
var f = 'first'; var n = 'name'; var s = 'say'; var h = 'hello';
-
var person2 = {[f + n]: '张小凡', [s + h]() { return '你好吗?'; }}
-
console.log(person2.firstname); //张小凡
-
console.log(person2.sayhello()); //你好吗?
-
Object.is()函数 比较两个值是否严格相等,或者说全等
-
var str = '12'; var num1 = 12; var num2 = 12;
-
console.log(Object.is(str, num1)); //false
-
console.log(Object.is(num1, num2)); //true
-
Object.assign() 函数 将源对象的属性赋值到目标对象上。源对象可以是一个或者一个以上,而目标对象只有一个。
-
let a = { 'a': 1 };
-
let b = { 'b': 2, 'c': 3 };
-
let c = { 'd': 4, 'e': 5 };
-
Object.assign(a, b, c);
-
console.log(a); //{a: 1, b: 2, c: 3, d: 4, e: 5}
-
Object.getPrototypeOf() 函数 获取一个对象的prototype属性。
-
function Person() {}
-
Person.prototype = { say() { console.log('hello'); } }
-
let p1 = new Person();
-
p1.say(); //hello
-
console.log(Object.getPrototypeOf(p1)); //{say: ƒ}
-
Object.setPrototypeOf() 函数 设置一个对象的prototype属性
-
Object.setPrototypeOf(p1, { say() { console.log('更改了') } });
-
p1.say(); //更改了
-
Javascript中面向对象 将共用属性和方法写在函数的原型中
-
function Dog(name) { this.name = name; }
-
Dog.prototype = { 'type': '动物', 'say': function () { console.log('名zi叫' + this.name); } };
-
var dog = new Dog('旺财');
-
dog.say(); //名zi叫旺财
ES6函数方法
-
函数默认值
-
把默认值的设定放在了参数上,而不需要在函数体内进行检测,一般将带默认值的参数放在最后。只有当传入的参数为undefined,才会触发默认值赋值。否则,哪怕你传的参数值为0,false,null都不会触发默认值赋值
-
function person2(name = 'maqiao', age = 22) {console.log(name, age); }
-
person2(); //maqiao 22
-
person2('wangwu'); //wangwu 22
-
rest参数,这是一个新的概念,rest的中文意思是:剩下的部分。在实参中,除了第一个参数以外,剩余的参数都会被...values获取到。rest参数必须是函数的最后一个参数
-
function sum(result, ...values) {
-
console.log(values); // [1, 2, 3, 4, 5, 6]
-
values.forEach(function (v, i) { result += v; })
-
console.log(result); //21 }
-
var res = 0;
-
sum(res, 1, 2, 3, 4, 5, 6);
-
扩展运算符 ... 可以将一个数组转成一个对应的参数数列
-
function sum(a, b) { return a + b; }
-
let arr = [2, 3];
-
console.log(sum(...arr));
-
箭头函数
-
箭头函数中的this,指的是定义时候产生的。this此时指的是window并不是我们想的元素。
-
function fn3() {
-
console.log(3);
-
return function fn4() {
-
console.log(4);
-
return function fn5() {
-
console.log(5); } } }
-
var fn6 = () => { console.log(6); return () => { console.log(7); return () => { console.log(8); } } }