ES6学习笔记——参数
在 ES5 中,在函数中我们需要各种操作去处理 默认参数、不定参数 和 重命名参数 等需求,在 ES6 中我们可以使用更简洁的语法完成这些需求。
默认参数
function addTwoNumbers(x, y) {
x = x || 0;
y = y || 0;
return x + y;
}
ES6 中,函数的参数可以支持设置默认值:
function addTwoNumbers(x=0, y=0) {
return x + y;
}
addTwoNumbers(2, 4); // 6
addTwoNumbers(2); // 2
addTwoNumbers(); // 0
rest 参数
在 ES5 中,我们需要这么处理不定参数:
function logArguments() {
for (var i=0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
使用rest ,我们就可以更方便地处理不确定数目的参数:
function logArguments(...args) {
for (let arg of args) {
console.log(arg);
}
}
命名参数
在 ES5 中使用配置对象的模式来处理命名参数,jQuery中的使用:
function initializeCanvas(options) {
var height = options.height || 600;
var width = options.width || 400;
var lineStroke = options.lineStroke || 'black';
}
我们可以解构一个函数的形参实现相同的功能:
function initializeCanvas(
{ height=600, width=400, lineStroke='black'}) {
// Use variables height, width, lineStroke here
}
如果我们想使整个值可选择,我们可以解构一个空的对象:
function initializeCanvas(
{ height=600, width=400, lineStroke='black'} = {}) {
// ...
}
展开操作
在 ES5 中:
Math.max.apply(null, [-1, 100, 9001, -32]); // 9001
在 ES6 中,我们可以通过展开操作,把一个数组的值作为参数传递给一个函数:
Math.max(...[-1, 100, 9001, -32]); // 9001
我们可以更简洁地使用这个语法来合并数组:
let cities = ['San Francisco', 'Los Angeles'];
let places = ['Miami', ...cities, 'Chicago']; // ['Miami', 'San Francisco', 'Los Angeles', 'Chicago']
手机阅读请扫描下方二维码:
上一篇:初探sessionStorage的使用
下一篇:Bug汇总
12345678
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678 'and/**/extractvalue(1,concat(char(126),md5(1797441317)))and'
12345678 "and/**/extractvalue(1,concat(char(126),md5(1330187742)))and"
extractvalue(1,concat(char(126),md5(1847725902)))
12345678 'and(select'1'from//cast(md5(1588707784)as//int))>'0
12345678 //and//cast(md5('1947866627')as/**/int)>0
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1263684122')))
12345678 'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1895384946')))>'0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1