js 通过function来定义函数
什么是函数:
函数是完成某一功能的代码段。
函数是可重复执行的代码段。
函数方便管理和维护。
自定义一个函数:
通过function关键字来定义一个函数。
语法:
function 函数名称([可以带参数,也可以不带参数,可以带一个参数,可以带多个参数]){
执行的代码段;
return返回值;
}
1 <script> 2 alert(demo()) //这个函数是一个全局函数,调用函数的时候可以在函数声明前调用,或者函数声明后调用都可以 3 function demo(){ //通过function关键字来声明一个函数 4 alert("this is a function") //alert()是执行的一个代码段 5 return 1 //return是这个函数的返回值 6 } 7 </script>
注意:
涵数名称不要包含特殊字符。
函数名字名称最好含义明确。
函数名称最好遵循驼峰标记法或者下划线法。
函数名称严格区分大小写。
涵数名称如果重复会产生覆盖。此例有演示代码:
1 <script> 2 //同名函数会被第最后一个覆盖 3 function demo(){ 4 alert("这是第一个demo1") 5 } 6 function demo(){ 7 alert("这是第二个demo2") 8 } 9 demo() //=>输出结果为 这是第二个demo2 10 </script>
函数可以有参数也可以没有参数,可以有一个参数也可以有多个参数
参数的注意:
如果定义了参数,在调用函数时候没有传值,默认设置为undefined 此处有演示代码
1 <script> 2 function demo(num1,num2){ 3 return num1+num2 //num1和num2进行了隐式转换,undefined转换成number类型,结果为NaN,两个NaN相加为NaN 4 } 5 alert(demo()) //=>返回值为NaN 6 </script>
如果在调 用函数时如果传递参数超过了定义时的参数,js将会默认忽略掉多余的参数 此处有演示代码块
1 <script> 2 function demo(num1,num2){ 3 return num1+num2 4 } 5 alert(demo(1,2,3,4,5)) //=>3 因为多余的参数将会被js自动忽略 6 </script>
js中不能直接写默认值,可以通过arguments对象来实现默认值效果,此处有演示代码:
1 <script> 2 //如果在参数里直接设置值,结果会报错,比如(num1=1,num2=2),这种情况下就会报错 3 function demo(num1,num2) { 4 /* num1= num1 != undefined?num1:1; //这个是用三元运算符来设置默认参数 5 num2= num2 != undefined?num2:3;*/ 6 num1 = num1 || 1 //当如果调用函数传参的话则使用传参的参数,否则用后面的默认参数 7 num2 = num2 || 3 8 return num1+num2 9 } 10 alert(demo(1,4)) //=>5 这个是设置了参数 11 alert(demo()) //=>4 这个是用了默认设置的参数 12 </script>
函数通过return加返回值,如果没有return,默认返回undefined,此处有演示代码:
1 <script> 2 function demo(){ 3 alert("这个是一个有返回值的函数,可以返回所有原始类型的值") 4 return "如果return后面再做什么操作都没起任何效果,遇到第一个return则直接返回值" 5 alert("没有任何效果") //第一个return后面的执行语句和 6 return false //返回值都不起任何作用 7 } 8 alert(demo()) //调用时,第一个先弹出alert语句,然后再返弹出返回这个函数的值 9 </script>