27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]
E-mail:mzze@163.com
Q Q:32362389
W X:xiaomi168527
27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]
大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]
E-mail:97157726@qq.com
Q Q:97157726
JavaScript的函数定义: 一堆完成某个特定功能的代码
function 函数名(){ 一堆代码--函数体 }
let 变量名 = function (){ 一堆代码--函数体 }
(function 函数名{ 一堆代码--函数体 })();
函数名();
注意:声明函数时,函数{}中的函数体代码,不会执行的。调用函数时,才执行函数{}中的代码。
function cook(){ console.log('洗菜'); console.log('切菜'); console.log('炒菜'); console.log('淘米'); console.log('煮米饭'); }
早上调用
cook();
中午调用
cook();
晚上调用
cook();
特点:函数不取名字,将函数作为一个值(表达式),赋值给一个变量,变量就是函数的名字
var fn = function(){ console.log('洗菜'); console.log('切菜'); console.log('炒菜'); console.log('淘米'); console.log('煮米饭'); }; fn(); //调用函数
匿名函数概念:没有名字的函数,叫做匿名函数
匿名函数特点:
(1)将匿名函数 使用小括号 括起来,表示是一个整体
(2)后面加一堆小括号,表示函数的调用
(3)匿名函数自调用(立即调用) 且 只能调用一次
(function(){ console.log('洗菜'); console.log('切菜'); console.log('炒菜'); console.log('淘米'); console.log('煮米饭'); })();
匿名函数的作用于好处 : 防止全局变量被污染(污染--值被改变)
var num = 10; //套一层函数自调用 隔离开这部分代码 函数中的var声明的变量,和函数外面的,互不影响 (function(){ var num = 100; console.log(num); //结果为100 })(); console.log(num); //结果还为10
注意:匿名函数内部一定要用var或let声明,如果不用,则还是使用的外部全局全量
//定义一个函数,计算 1 - 100 之间的数的和 function fn(){ var total = 0; for(var i=1; i<=100; i++){ total += i; } console.log(total); } fn(); //调用函数
单参数:定义一个函数,计算 1 - n 之间的数的和
//定义函数时,声明一个参数n 调用函数时,传一个值,给参数n赋值了
function fn(n){ var total = 0; for(var i=1; i<=n; i++){ total += i; } console.log(total); } //调用函数并且传参数 fn(100); // 1-100 fn(200); // 1-200
注意:多个参数 用逗号隔开 实参和形参 按照顺序 一一对应
双参数:定义一个函数,计算 m - n 之间的数的和
//定义函数时,声明参数m n 调用函数时,传一个值,给参数n赋值了 function fn(m,n){ // m,n为形式参数 // console.log(m, n); var total = 0; for(var i=m; i<=n; i++){ total += i; } console.log(total); } //调用函数并且传参数 var a = 100, b=200; fn(a,b); //a,b为
注意:
1.形参和实参个数,可以不相同
2.实参少传了,函数本身语法没错,但是函数里面的代码可能报错
3.fn(200, 300, 400); //多传了只取前两个
4.fn(); //没传传进函数内的值是undefined
函数return返回值的定义: 在函数内部,代码执行结束,给向函数外部提供一个结果
函数return返回值使用环境:如果调用函数后,需要使用的函数的结果,则需要return 返回值。
(1)return返回值 之后的代码都不执行
(2)如果没有写return ,或者 return 后面没有加具体的值,则返回值为undefined
//定义一个函数,计算 m - n 之间的数的和 //定义函数时,声明参数m n 调用函数时,传一个值,给参数n赋值了 function fn(m,n){ // console.log(m, n); var total = 0; for(var i=m; i<=n; i++){ total += i; } // 返回一个值 作为函数执行的结果 return total; } //调用函数并且传参数 //需要将累加后的和 ,返回到函数外面 var res = fn(100, 200); console.log(res); //结果为100-200累积的和15150
函数本身也是一个特殊的值,数据类型是属于对象object类型的
// console.log(typeof null); //返回object
// console.log(typeof f1); // 返回function,实际我们归类为object
案例:把函数f2作为 返回值
var f2 = function(){ console.log(200); return 300; } function f3(){ var a = 100; // return f2; return f2(); var b = f2(); return b; } //如果f3中,f2后面没有小括号,所有f2函数没有被调用,而是直接将函数作为一个值返回了 //如果f3中,f2后面有小括号,则会调用f2的返回值300 var res = f3(); console.log(res); //f2();结果为300,如果是f2则直接是函数表达式function(){console.log(200); return 300;};
//这里用表达式方式声明函数
var f1 = function(){ return 100; }; //f2 希望有一个函数类型的参数 传进来 function f2(f){ //f = f1 var res = f(); //将传进来的函数 调用一次 console.log(res); } f2(f1);
本站内容均为小米原创,转载请注明出处:小米技术社区>> JavaScript的函数概念_声明_参数_形参_实参_返回值等