js(function)
1.调用函数
var a = 3;
var b = 4;
function print(a, b) {
return a * b //return 将结束函数,所以return之后不能继续写命令,return返回值即为函数的值如:
let ss = print(2,2); console.log(ss)输出结果为4
}
var x = function (a,b) {return a + b};//函数存储在变量中,不需要函数名称,通常通过变量名来调用
var y = new Function("a","b","return a * b"); //函数同样可以通过内置的JavaScript函数构造器(Function())定义。
document.getElementById("demo").innerHTML = print(a,b);
document.getElementById("demos").innerHTML = x(3,23);
document.getElementById("demoss").innerHTML = y(3,3); //函数存储在变量中,不需要函数名称,通常通过变量名来调用
</script>
2.函数的使用
<script> function myL(a,b){ return a + b; } var X = myL(5,4) + 8 document.getElementById("demo").innerHTML = X; </script>
3.argument引用参数个数
1 2 3 4 5 6 7 8 9 10 11 12 | <p id= "demo" >name</p> <p id= "DEMOs" >names</p> <script> function myFunction(a,b){ return arguments.length; //返回函数调用引用的参数个数 } function myFunctions(a,b){ return a * b; } document.getElementById( "demo" ).innerHTML = myFunction(3,5); //myFunction()函数定义即为window页面函数,所以也可以用window.myFunction() document.getElementById( "DEMOs" ).innerHTML = myFunctions.toString(); //toString() 方法将函数作为一个字符串返回 </script> |
4.argument 对象包含了函数调用的参数数组。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <p id= "demo" >name</p> <script> x = findMAX(1,123,500,115,44,88) function findMAX(){ var i,max = arguments[0]; //自动调用内置变量 if (arguments.length < 2) return max; for (i = 0; i < arguments.length; i++){ if (arguments[i] > max){ max = arguments[i] } } return max; } document.getElementById( "demo" ).innerHTML = x; |
5.apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入
call则作为call的参数传入,直接传入参数
1 2 3 4 5 6 7 8 9 10 | <p id= "demo" ></p> <script> var myObject, myArray; function myFunction(a, b) { return a * b; } myArray = [10, 2] myObject = myFunction.apply(myObject, myArray); // 返回 20 document.getElementById( "demo" ).innerHTML = myObject; </script> |
1 2 3 4 5 6 7 8 | <script> var myObject; function myFunction(a, b) { return a * b; } myObject = myFunction.call(myObject, 10, 2); // 返回 20 document.getElementById( "demo" ).innerHTML = myObject; </script> |
6.函数调用本身,返回函数表达式
1 2 3 4 5 6 7 8 9 10 11 12 | <p>局部变量计数。</p> <button type= "button" onclick= "myFunction()" >计数!</button> <p id= "demo" >0</p> <script> var add = (function () { var counter = 0; return function () { return counter += 1;} })(); function myFunction(){ document.getElementById( "demo" ).innerHTML = add(); //add返回"function () {return counter += 1;}"函数表达式,所以add变量可以作为一个函数使用。 } //计数进行累加,不会重复执行counter=0。 </script> |
7.立即执行函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | let .html <script src= "test1.js" ></script> //调用以下两个js文件 <script src= "test2.js" ></script> <script> hd(); //执行test1.js的hd,test2为立即执行函数,不是全局函数,不能调用(如果test2.js的内容和test1.js的内容相同,则test2的内容会覆盖test1的内容,执行test2的内容)<br> jim.hd(); //调用test2的函数 </script> 文件:test1.js function hd(){ console.log( "test1.hd" ) } function show(){ console.log( "test1.show" ) } 文件:test2.js (function(window){ function hd(){ console.log( "test2.hd" ) } function show(){ console.log( "test2.show" ) } window.jim = { hd,show }; })(window) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)