function 函数名(形参1,形参2){
//函数执行代码
}
func(实参1,实参2);//调用时传参
形参是接受实参的,相当于一个不用声明变量
2.1:当形参和实参不匹配的情况
- 实参的个数大于形参的个数
会取到形参的个数,实参后面多出来的就不要了
- 实参的个数小于形参的个数
结果都是NaN
2.2:返回值
function 函数名(){
return 需要返回的结果;
}
函数名();
注意点:
-
只要函数遇到return 就把return后面的结果 返回给函数的调用者 也就是说:函数名()=return后面的结果
-
return终结函数:当代码执行到return时,其后面的代码就不会执行了,不仅可以退出循环,还能够返回return中的值,同时还可以结束当前函数体内的代码
-
如果没有return则返回的是undefined
-
return只能返回一个值。如果用逗号隔开多个值,以最后一个为准. 如果需要返回多个值,就用数组的写法,返回的是数组的形式
return[ num,num1,num2];
==========================================================================
arguments 是用来获取参数的,arguments对象中存储的是传递的所有实参 是函数内置好的对象,直接拿来用。是一个伪数组
这里给大家讲解哈什么事伪数组
1、具有数组的length的属性;
2、按照索引的方式进行存储的;
3、它没有真正数组的一些方法:pop()、push()。。
举例:可以看出arguments里面存放的是一组实参
function a() {
console.log(arguments);
}
a(1,2,3);
一般可以按照数组的方法遍历arguments
========================================================================
预解析常常是面试会问的问题
4.1:作用域
概念:就是代码名字在某个范围内起作用和效果。
目的:是为了提高程序可靠性,减少命名冲突
局部作用域,也叫做函数作用域,这个代码在函数内部起作用;
局部作用域 , 整个script标签 或者是一个单独的js文件
变量作用域根据作用域划分为:全局变量、局部变量 没有块级作用域
全局变量
全部变量只有浏览器关闭的时候才会销毁,比较占用内存
特殊情况:
如果在函数内部没有声明直接赋值的变量也是全局变量
比如:var a = b = c =9;
相当于var a=9;
b=9;
c=9; 则b和c是全局变量
局部变量
局部变量在函数内部使用,当函数结束就会被销毁,更节省内存空间
函数的形参也可以当作局部变量
作用域链:内部函数访问外部函数的变量 利用链式查找变量 (就近原则)
4.1:预解析
之前我们提到js有一个解释器来解释并执行我们的代码,这个解释器就是 预解析加代码执行
预解析定义:js引擎会把js里面所有的var还有function提至到当前作用域的前面,变量提升只是将我们的变量声明提升 值不提升
代码执行:按照代码书写的顺讯从上往下执行
-
var在预解析时,会把声明提升到最前边(赋值前打印返回undefined)。只提升声明,不会把赋值过程进行提升。
-
function的函数体在预解析时,会把整个函数体提升至最前边。(函数体:function fn(){ console.log(1);})
-
函数表达式(函数表达式:var fn = function(){};)只会提升函数表达式的声明,不会执行(真正执行函数表达式前调用会返回undefined)
-
在预解析时,会先预解析var(包括变量声明和函数表达式的变量声明),把var放在最前面,然后再预解析function,所以当var和function重名时,function会覆盖var;
/*
解析过程:先预解析var声明的a,再预解析函数体a,后面覆盖前面,所以最后结果是function函数体
var a;
function a(){console.log(“函数a”);};//此函数体解析后会覆盖变量a
*/
console.log(a);
var a = 0;
function a(){
console.log(“函数a”);
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
文末
技术是没有终点的,也是学不完的,最重要的是活着、不秃。
零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。
最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。
自学最怕的就是缺乏自驱力,一定要自律,杜绝“三天打鱼两天晒网”,到最后白忙活一场。
高度自律的同时,要保持耐心,不抛弃不放弃,切勿自怨自艾,每天给自己一点点鼓励,学习的劲头就会很足,不容易犯困。
技术学到手后,找工作的时候一定要好好准备一份简历,不要无头苍蝇一样去海投简历,容易“竹篮打水一场空”。好好的准备一下简历,毕竟是找工作的敲门砖。
拿到面试邀请后,在面试的过程中一定要大大方方,尽力把自己学到的知识舒适地表达出来,不要因为是自学就不够自信,给面试官一个好的印象,面试成功的几率就会大很多,加油吧,骚年!
乏自驱力,一定要自律,杜绝“三天打鱼两天晒网”,到最后白忙活一场。
高度自律的同时,要保持耐心,不抛弃不放弃,切勿自怨自艾,每天给自己一点点鼓励,学习的劲头就会很足,不容易犯困。
技术学到手后,找工作的时候一定要好好准备一份简历,不要无头苍蝇一样去海投简历,容易“竹篮打水一场空”。好好的准备一下简历,毕竟是找工作的敲门砖。
拿到面试邀请后,在面试的过程中一定要大大方方,尽力把自己学到的知识舒适地表达出来,不要因为是自学就不够自信,给面试官一个好的印象,面试成功的几率就会大很多,加油吧,骚年!