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)
posted @   JASON_yul  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示