以下是html代码,个人建议放在IDE里运行,边看效果,边学习~
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS初步(十三)——函数(一)</title> <script> /* 函数 - 函数也是一个对象(特殊) - 普通对象像一个容器,只能装东西,而函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码) */ //创建一个函数对象 //可以将要封装的代码以字符串的形式传递给构造函数(封装的代码就是Function("")中双引号里面的部分) var fun = new Function("console.log(‘Hello,这是我的第一个函数‘);"); //很遗憾,实际上我们在实际开发中很少使用构造函数來创建一个函数对家 console.log(typeof fun); //输出看看,显示function,没显示里面的代码 //封装到函数中的代码不会立即执行,会在函数被调用的时候执行 /* 调用函数 语法:函数对象() */ fun(); //调用函数,里面的代码会按照顺序执行,打开浏览器看看 //向fun函数里添加属性试试 fun.hello = "可安好,陌生人"; console.log(fun.hello); //看效果 /* 使用函数声明来创建函数 语法: function 函数名([形参1,...,形参n]){ 语句... } 这里的[]内容是可写可不写的意思 */ function fun2(){ console.log("你好呀,我们又见面了"); } fun2(); //执行函数fun2 /* 使用函数表达式来创建一个函数 var 函数名 = function([形参1,形参2.. .形参N]){ 语句... } */ /* function(){ console.log("这种叫做匿名函数哦,没有名字,这个函数自然也就用不了(ps:一般用来传参)"); } var 一个 fun3 来让其赋值给fun3,也就变成了上面的创建方法 */ /* 函数的参数 - 定义一个用来求两个数和的函数,可以在函数的()中来指定一个或多个形参(形式参数) - 多个形参之间使用逗号隔开,声明形参就相当于在函数内部声明了对应的变量 但是并不赋值 */ function add(a,b){ //这里的a,b就是形式参数,代表着外部传进来的变量,本身是没有什么意义的 var c = a + b; document.write(a+"加"+b+"的和是"+c+"<br/>"); } /* 调用函数时,可以在()中指定实参(实际参数),实参将会赋值给函数中对应的形参 调用函数时,解析器不会检查实参的类型,所以要注意是否有可能会接收到非法参数 如果有可能则需要对参数进行类型的检查 函数的实参可以是任意的数据类型 */ //可以这样调用 add(1,3); //还可以这样调用 one = 12; two = "345"; add(one,two); //参数类型多样化 add(true,false); /* 调用函数时,解析器也不会检查实参的数量,多余实参不会被赋值 如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined */ add("李耳",two,true,"123"); //输出发现只有前两个参数被用到了 add(123); //输出显示为:123加undefined的和是NaN //为了更好的了解这个例子,我将在原来的add函数基础上修改一下add的代码,并新建一个add2函数 function add2(a,b){ //这里的a,b就是形式参数,代表着外部传进来的变量,本身是没有什么意义的 document.write("下面是修改了代码的add函数<br/>"); var c = a + b; document.write(a+"<br/>"); document.write(b+"<br/>"); document.write(a+"加"+b+"的和是"+c+"<br/>"); } add2(123); //输出a为123,输出b为undefined,即没写b自动判定为未定义类型的参数 //值得注意的是函数的形参只会在函数里起作用,所以大可不必纠结形参名,在函数外面也可以重复使用相同的名字 //在函数外定义的变量可以在函数内部使用,此时变量名不能与形参名一致 </script> </head> <body> </body> </html>
Web全栈工程师之路(三)——JavaScript篇(十三)——函数(一)
原文:https://www.cnblogs.com/lyrebirth-world/p/12991248.html