1、立即执行函数可以防止全局污染,如下这个立即执行函数中的name并不是申明在window下,所以不用担心window下有同名属性被覆盖。
(function () {
var name = 'abc';
console.log(name);
})()
2、函数中的参数摆放位置:默认参数和...参数应该放在其他参数后面(...参数应该放在最后面),如下:
function getName(lastName,firstName='杨'){
return firstName + lastName
}
console.log(getName('过'))
function sum(start,...arr){
return arr.reduce((acc,item)=>{
acc += item
return acc
},start)
}
console.log(sum(5,3,5,6))
4、构造函数的原理:this原本是空的,通过构造之后会产生一个对象,只是函数体中省略了return this这一步
function User(name){
this.name = name
return {
a:'aa'
}
}
console.log(new User('lisi'))
7、通过call实现构造函数的继承
function User(){
this.name = 'yp'
this.fn = function(){
console.log('i am supman')
}
}
function Perple(money){
User.call(this)
this.money = money
}
let xiaoming = new Perple(333)
console.log(xiaoming.fn())
9、定义函数时,最好把测试调用并传参一起写上,这是一个正确的定义函数的过程
10、重复数量不定时用递归,否则用循环