本人98女,大学计算机专业,由于专业技能方面很拉胯,毕业之后就去某编程做了一名班主任。做了将近一年时间,发现销售真的不适合自己,然后在什么都没有的情况下居然选择了裸辞,到今天是我裸辞的5个月,期间一直在自学web前端,直到现在开始找工作,才发现,互联网公司真的不是那么容易进的,再加上最近几年的大环境,投出去的简历就像泼出去的水,消失在茫茫人海。。。。。好不容易有了面试,面试官不按套路走,上来问我有没有算过自己总共写过多少行代码,我tm那会回答这个问题,就含糊的糊弄过去了,然后就问了一些js中函数你总结过多少,能不能说一些,以及this,闭包等等,问的很深奥,我平时也没有思考过这么多,这次就一下子被问住了,一把辛酸泪,面试官也告诉了我学习这些东西,重要的是原理,一定要弄清楚,这个东西是什么,为什么有它的出现,那不用它可不可以,以及怎么去使用它,这样去学习的话,效率才会提高。啥也不说了,还是自己学的太浅,只能发奋图强,继续努力了,那么接下来就开始分享我学习的过程,也算是监督自己帮助自己复习,自我沉淀的一个过程把,话不多说,开整。。。
js-函数
1.函数是什么?
函数是一个对象,会有普通对象的一些功能,会比普通对象更强大,可以在构造函数内封装可执行代码
比如:
var fun = new Function("console.log('这是我的第一个函数')")
// console.log(typeof fun);
// console.log(fun);
// fun()
fun.hello = "你好"
console.log(fun.hello);//你好
2.函数是干啥的?
函数可以封装一些功能,方便我们需要的时候去使用
函数可以存放一些代码,方便我们后续调用
函数简称function
场景:我们想要在不同的位置执行一下代码,可能这时候我们会想,直接复制不就完了,这样确实可以,但如果我们想要执行100行甚至1000行,在一个项目中的不同位置都需要使用呢,这时候你可能又会说,接着复制呗,确实复制不难,但是我们下次想要修改代码的时候就难了,也就是说,不方便我们后续的维护呀,这个时候我们就可以选择使用函数,去封装功能。
//执行这三行代码
console('hello')
console('hello')
console('hello')
3.如何创建一个函数?
(1)利用构造函数去创建一个函数对象
可以将封装的代码放在构造函数内部,以字符串的形式存放
var fun = new Function("console.log('这是我的第一个函数')")
注意:封装到函数内的代码并不会立即执行
(2)如何调用函数?
函数对象()
fun()
(3)不推荐使用构造函数去创建一个函数,只是告诉我们,函数也是一个对象
4.利用函数声明去创建函数
// 其中fun2是函数名,[]代表可选参数,可写可不写
function fun2([形参1,形参2,形参3]) {
console.log('这是我的第二个函数');//函数体,不调用函数不会执行
}
console.log(fun2);
5.利用 函数表达式来 创建一个函数
将一个匿名函数赋值给变量
var fun3 = function() {}
console.log(fun3);
6.立即执行函数,匿名函数
什么是立即执行函数呢?就是创建完立即执行的函数,接下来看代码
function() {
console.log('我是一个匿名函数');
}
//Uncaught SyntaxError: Function statements require a function name
直接写一个匿名函数,会报错
var a = function() {
console.log('我是一个匿名函数');
}
如果前面创建一个变量去接受它的话,是不会报错的,但有些场景,我们就需要调用函数一次,创建完就执行,也就是所谓的立即执行函数,这样我们没有必要再去创建一个变量,造成内存的一个污染,那怎么解决报错呢,需要外面加一个大括号,表示它们是一个整体
(function() {
console.log('我是一个匿名函数');
})
那又怎么去调用匿名函数呢?直接后面加括号就可以
(function() {
console.log('我是一个匿名函数');
})()//我是一个匿名函数
完美解决。。。。
立即执行函数也是可以传入参数的
(function(a,b) {
console.log('a='+a);
console.log('b='+b);
})(2,3)//a=2 b=3
7.总结
(1)3种创建函数的方法,第一种利用构造函数,第二种利用声明函数,第三种利用函数表达式创建一个函数,就是将一个匿名函数赋值给一个变量
(2)函数是什么?函数是一个对象,可以封装一些代码,需要的时候我们可以使用
(3)不封装代码就不能使用了嘛,使用函数的优点?方便我们复用代码,比如一些代码我们会在不同的地方去使用,使用几次我们可以直接复制粘贴,但是几百次几千次复制粘贴就不是一个可行的方案,这时候,我们可以选择把这些代码封装在一个函数内,什么时候使用了,我们拿出去使用就好啦,如果想要修改代码的时候,也只是修改一次,大大提高了我们工作的效率,提高了代码的可复用性
(4)立即执行函数往往只会执行一次