一.函数可以设置默认值
function add(a,b=1){
return a+b;
}
console.log(add(1)); //2
二.获取函数形参的个数(不包含有默认值的参数)
格式:函数名.length
function add(a,b=1){
return a+b;
}
console.log(add.length); //1
三.函数主动在控制台抛出错误
格式:throw new Error( xxxx )
在使用Vue的框架中,可以经常看到框架主动抛出一些错误,比如v-for必须有:key值。那是如何做到的那?
function add(){
throw new Error('This is error')
console.log(1);
}
add() //Uncaught Error: This is error
后面代码因为错误会停止执行
四.箭头函数
ES6语法中新增了箭头函数,相较于传统函数,箭头函数不仅更加简洁,而且在this方面进行了改进。
1.如果参数只有一个,可以不加括号,如果没有参数或者参数多于一个就需要加括号
const test = name => {
console.log(name) //1
}
test(1')
const test2 = (name1, name2) => {
console.log(name1 , name2) //1 2
}
test2(1, 2)
2.如果函数体只有一句话,可以不加花括号,如果是两句话或以上,那就需要在方法体外边加上{ }
括号
const test = name => console.log(name)
const test= name=>{
console.log(1);
console.log(2);
}
3.如果函数体没有括号,可以不写return,箭头函数会帮你return
const add = (p1, p2) => p1 + p2
add(10, 25)
从以上的例子我们可以看出,箭头函数对常规函数的圆括号和花括号都进行了简化。除了这些简化,箭头函数对于常规函数最大的优化之处在于this
,关于this
详见javascript中的this指向。
五.对象的函数解构
let json = {
a:'js',
b:'javascript'
}
function fun({a,b='str'}){
console.log(a,b);
}
fun(json); //js javascript
是不是感觉方便了很多,我们再也不用一个个传递参数了。其实这个只是之前讲到的对象的结构
同理
六.数组的函数解构
这里和对象不一样,需要使用扩展运算符将数组释放为用逗号分隔的参数序列。
let arr = ['js','javascript'];
function fun(a,b){
console.log(a,b);
}
fun(...arr); //js javascript