【メモ】JavaScript ES(6-10)の全バージョン文法を再学習する——パラメータ、矢印関数
20776 ワード
記事の目次、パラメータのデフォルト値 1.ES 5 .ES 6 、処理不定パラメータ 1.ES 5 .ES 6 、リセットパラメータの逆演算 1.ES 5 .ES 6 、ES 6の矢印関数 一、パラメータのデフォルト値
1.ES 5
1.ES 5
1.ES 5
注意:call()メソッドの役割は、appy()方法と同様であり、違いはcall()メソッドが受け入れるのはパラメータリストであり、apply()メソッドが受けるのはパラメータ配列である.
2.ES 6 thisは、詳細解析(矢印関数) を指す.
1.ES 5
/*
* ES5
*/
function f (x, y, z) {
if (y === undefined) {
y = 7
}
if (z === undefined) {
z = 42
}
return x + y + z
}
console.log(f(1)) // 50
console.log(f(1, 8)) // 51
console.log(f(1, 8, 43)) // 52
2.ES 6/*
* ES6
*/
function f (x, y = 10, z = x + y) {
console.log(f.length) // 1,
return x * y + z
}
console.log(f(1)) // 21
console.log(f(1, 8)) // 17
console.log(f(1, 8, 43)) // 51
console.log(f(1, undefined, 43)) // 53, undefined
二、処理不安定パラメータ1.ES 5
/*
* ES5
*/
function sum () {
let num = 0
Array.prototype.forEach.call(arguments, function (item) {
num += item * 1
})
return num
}
console.log(sum(1, 2, 3))
2.ES 6/*
* ES6
*/
function sum (base, ...nums) {
let num = 0
// Rest parameter
nums.forEach(function (item) {
num += item * 1
})
return base * 2 + num
}
console.log(sum(1, 2, 3)) // 7
三、レスポンスパラメータの逆演算1.ES 5
/*
* ES5
*/
function sum (x = 1, y = 2, z = 3) {
return x + y + z
}
let data = [4, 5, 6]
console.log(sum(data[0], data[1], data[2])) // 15
console.log(sum.apply(this, data)) // 15
apply()メソッドは、与えられたthis値の関数として、配列(または同様の配列オブジェクト)として提供されるパラメータを呼び出します.注意:call()メソッドの役割は、appy()方法と同様であり、違いはcall()メソッドが受け入れるのはパラメータリストであり、apply()メソッドが受けるのはパラメータ配列である.
2.ES 6
/*
* ES6
*/
function sum (x = 1, y = 2, z = 3) {
return x + y + z
}
let data = [4, 5, 6]
// spread
console.log(sum(...data)) // 15
四、ES 6の矢印関数/*
* ES6
*/
//
function f1 () {}
f1()
let f2 = function () {}
f2()
//
let f3 = () => {}
f3()
// ,
let f4 = name => {
console.log(name)
}
f4('oliver')
// , ,
let f5 = (x, y, z) => x + y + z
console.log(f5(1, 2, 3)) // 6
// (object literal)
let f6 = (x, y, z) => ({
x: x,
y: y,
z: z
})
console.log(f6(1, 2, 3)) // {x: 1, y: 2, z: 3}
/*
* this
*/
// : ,this
let obj1 = {
name: 'obj',
say: function () {
console.log(this.name)
}
}
obj1.say() // obj
// : this ,
let obj2 = {
name: 'obj',
say: () => {
console.log(this.name)
}
}
obj2.say() // webpack Window, undefined
//
let arr = [10, 20, 1, 2]
arr.sort((x, y) => x - y)
console.log(arr) // [1, 2, 10, 20]
展開: