**
**
概念:
==>对于js来说,就是任意一段代码放在一个盒子里面.
==>在我想要让这段代码执行的时候,直接执行这个盒子里面的代码就可以
定义方式:(声明式和赋值式)
声明式:
==>使用function这个关键字来声明一个函数
==>语法:
function fn(){
//一段代码
}
赋值式:
==>就是和我们使用var关键字是一个道理
==>首先使用var定义一个变量,把一个函数当做值直接赋值给这个变量就可以了
==>语法:
var fn = function(){
//一段代码
}
//不需要在function后面书写名字了,因为在前面已经有了,此时的变量名就是函数名
调用一个函数:
==>函数调用就是直接写:函数名() 就可以了
两种函数定义方式调用上的区别:
==>声明式函数:调用可以在定义之前或者之后
==>赋值式函数:调用只能在定义之后
实例:
//调用函数 s1(); //声明式 function s1(){ //要执行的代码 console.log('我是函数s1里面的代码') } //赋值式 //前面调用函数会报错:fn is not a function // fn(); var fn = function(){ //要执行的代码 console.log('我是函数fn里面的代码') } //调用函数 fn();
==>我们在定义函数和调用函数的时候都出现一个()
==>就是用来放参数的
==>参数分为两种:形参和实参
==>声明式
function fn(形参写在这里){
//一段代码
}
fn(实参写在这里)
==>赋值式
var fn = function(形参写在这里){
//一段代码
}
fn(实参写在这里)
==>就是在函数内部可以使用的变量,在函数外部不能使用
==>每写一个单词,就相当于在函数内部定义了一个可以使用的变量(变量名要遵循命名规则)
==>多个单词之间用 , 隔开
==>如果只有形参的话,那么在函数内部使用的每个变量是没有值的,就是undefined;
==>形参的值是在函数调用的时候由实参决定的
==>在函数调用的时候给形参赋值的
==>也就是说,在调用的时候是给一个实际的内容的
==>函数内部的形参的值,由函数调用的时候传递的实参决定的
==>多个参数的时候是按照顺序一一对应的
==>形参比实参少
-->因为是按照顺序一一对应的
-->形参少就会有拿不到实参给的值,所有在函数内部就没有办法用到这个值
==>形参比实参多
-->因为是按照顺序一一对应的
-->所以多出来的形参就是没有值的,就是undefined
==>实参在函数调用的时候一一对应赋值给形参
实例:
//编写一个函数,计算两个数的和差积商 function calc(num1,num2,sign){ // var sign = "*";//"+","-","/","*"; switch(sign){ case "+": console.log(num1+"+"+num2+"="+(num1+num2)); break; case "-": console.log(num1+"-"+num2+"="+(num1-num2)); break; case "*": console.log(num1+"*"+num2+"="+(num1*num2)); break; case "/": console.log(num1+"/"+num2+"="+(num1/num2)); break; } } //调用函数 calc(10,24,"-") //调用函数 calc(100,25,"/")
return 返回的意思,这个关键字就是给函数一个返回值和终断函数
==>终断函数
==>当我开始执行函数以后,函数内部的代码会至上而下执行
==>必须要等到函数内部的代码执行完毕
==>而return关键字就是可以在函数中间的位置停掉,让后面的代码不再继续执行
==>一个函数里面只有一个return起作用.
//终断函数 function fn(){ console.log('1') console.log('2'); //return在此处终止代码,后面不会再执行了; return; console.log('3') console.log('4'); console.log('5') } fn();
==>返回值
==>函数调用本身也是一个表达式,表达式就应该有一个值出现
==>什么是表达式:操作数和运算符组合成的
==>1+2
==>1||2
==>!"hello"
==>现在的函数执行完毕以后,是不会有结果出现的
==>return关键字就是可以给函数执行完毕以后一个结果
==>我们可以在函数内部使用return关键字把任何内容当做这个函数的运行后的结果
//返回值 function sum(a,b){ console.log(a+b); return 10; } //通过sum(2,3)调用sum函数,也就是把里面代码执行一遍,然后,把函数执行完以后的结果,赋值给aa; var aa = sum(2,3)//aa==10
本文地址:https://blog.csdn.net/rain_zhh/article/details/107285643
如对本文有疑问, 点击进行留言回复!!
轻松解决 org.apache.taglibs.standard.tlv.JstlCoreTLV 困惑
vert实践五——Json?Protocol Buffer?FlatBuffers?
[基于tensorflow的人脸检测] 基于神经网络的人脸检测8——验证训练好的神经网络
selenium + ajax抓取英雄联盟全部英雄的详细信息及多线程保存全部皮肤图片到本地
网友评论