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); } } }