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