• JavaScript 函数(方法)


    1 定义

    1.1

    函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

    语法:

    函数就是包裹在大括号中的代码块,前面使用了关键词 function

    function 方法名(参数列表){

           代码;

    }

    tips:

    1)方法写完不会执行,只有调用时才执行

    2)方法名是一个标识符,需要遵守标识符的命名规则

    3)分号是用来分隔可执行JavaScript语句的,由于函数声明不是一个可执行语句,所以不以分号结束

    1.2 函数表达式

    JavaScript 函数可以通过一个表达式定义,

    函数表达式可以存储在变量中:

    示例:

    var x = function (a, b) {

    return a * b

    }; 

    在函数表达式存储在变量后,变量也可作为一个函数使用:

    示例:

    var x = function (a, b) {

    return a * b

    };

    var z = x(4, 3);

    tips:通过表达式定义的函数以分号结尾,因为它是一个执行语句(实际上就是给变量赋值,只不过这个值是一个函数,所以要加分号)。

    1.3 匿名函数

    在上面1.2中示例的函数实际上是一个 匿名函数 (函数没有名称)。

    函数存储在变量中,不需要函数名称,通常通过变量名来调用。

    2 调用

    2.1 方法名(); 这样写就会调用一个方法

    2.2 页面加载与函数调用的示例: 

    有一个a.js文件,一个b.js文件,引入到页面中:

    <script src="a.js"></script>

    <script src="b.js"></script>

    当a文件调用b文件中的方法时,会报错,这是因为a文件在调用时,b还没有加载,所以就找不到定义的方法。

    解决方法:

    可以加一个页面加载完成

    window.onload=function(){

           调用方法;

    }

    tips:

    1)页面加载过程是从上往下的,当整个html结束时(就是到最后一行代码),才叫做“页面加载完成”

    2)一个html文件只能有一个window.onload,写在哪个文件没关系

    3)一般window.onload里面只写方法的调用,方法的定义可以写在外面

    2.3 函数提升

    函数可以在声明之前调用,

    使用表达式定义函数时无法提升。

    2.4 自调用函数 

    示例: 匿名自我调用的函数

    (function () {

        var x = "Hello!!";      // 我将调用自己
    })();

    3 参数

    3.1

    在调用函数时,可以向其传递值,这些值被称为参数。

    这些参数可以在函数中使用。

    可以发送任意多的参数,由逗号 (,) 分隔:

    myFunction(argument1,argument2)

    当声明函数时,把参数作为变量来声明:

    function myFunction(var1,var2)
    {
    代码
    }

    变量和参数必须以一致的顺序出现。第一个变量就是第一个被传递的参数的给定的值,以此类推。

    3.2 显式参数和隐式参数

    函数显式参数在函数定义时列出。

    函数隐式参数在函数调用时传递给函数真正的值。

    3.3

    方法定义的时候,小括号里面的参数叫形式参数(形参)

    方法调用的时候,小括号里面的参数叫实际参数(实参) 

    示例:

    function show(a=0){  

           alert(a);

    }

    show();

    上面的函数中,形参a被初始化了一个值。

    我自己的理解:

    当定义了形参时,就等于在函数中声明了一个变量,但是没有赋值;

    只有在函数调用时,才给这个变量赋了值;

    所以,形参是可以定义并赋值的,就是一个默认值;

    当传入实参时,相当于值被改变了,如果没有传实参,那么参数还是有值的。

    3.4 魔法参数:arguments

    JavaScript 函数有个内置的对象 arguments 对象。

    argument 对象包含了函数调用的参数数组。 

    示例:

    function zyx(){

           console.log(arguments);

    }

    zyx(1,2,3);

    结果为:

    4 返回值

    有时,我们会希望函数将值返回调用它的地方。

    通过使用 return 语句就可以实现。

    在使用 return 语句时,函数会停止执行,并返回指定的值。

    语法

    function myFunction()
    {
        var x=5;
        return x;
    }

    return 值;

    结束方法,返回后面的数据

    练习:接收二个参数,比较大小 

    function getNum(){
    	var num1=prompt('输入第一个数');
    	var num2=prompt('输入第二个数');
    	compare(num1,num2);
    }
    
    function compare(n1,n2){
    	if(n1>n2){
    		alert(n1+'比'+n2+'大');
    	} else if(n1<n2){
    		alert(n1+'比'+n2+'小');
    	} else{
    		alert(n1+'和'+n2+'相等');
    	}
    }
    
    getNum();
    

    5 其他

    5.1 局部 JavaScript 变量

    在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。

    您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。

    只要函数运行完毕,本地变量就会被删除。

    5.2 全局 JavaScript 变量

    在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。

    5.3 JavaScript 变量的生存期

    JavaScript 变量的生命期从它们被声明的时间开始。

    局部变量会在函数运行以后被删除。

    全局变量会在页面关闭后被删除。 

     

    5.4 向未声明的 JavaScript 变量分配值

    如果您把值赋给尚未声明的变量,该变量将被自动作为 window 的一个属性。

    这条语句:

    carname="Volvo";

    将声明 window 的一个属性 carname。

    非严格模式下给未声明变量赋值创建的全局变量,是全局对象的可配置属性,可以删除。

  • 相关阅读:
    网页跳转
    http报文简要分析
    【转】google hacking 谷歌搜索方法简介
    python中的切片问题
    Deepfakes教程及各个换脸软件下载
    PHP的虚拟域名的配置
    composer windows安装,使用新手入门[转]
    通过路由器的IP映射来解决,两个不同IP地址的PC机之间的从LAN口到WAN口的单向通讯问题
    [转] 如何把书上的字弄到电脑
    关于快排与随机化快排
  • 原文地址:https://www.cnblogs.com/hzhjxx/p/9681481.html
Copyright © 2020-2023  润新知