Python JavaScript2: 函数

总体内容
1、函数的定义与调用
2、提取行间事件与匿名函数
3、网页换肤
4、变量和函数的域解析
5、函数传参与return关键字

一、函数的定义与调用

  • 1.1、函数:就是重复执行的代码片

  • 1.2、函数定义与执行

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>函数的基础学习</title>
       <script type="text/javascript">
    
            <!--函数的定义-->
            function fnAlter() {
                 alert("测试弹框")
            }
            function changeColor() {
                 var oDiv = document.getElementById("div1")
                 oDiv.style.color = 'red'
                 oDiv.style.fontSize = '30px'
            }
       </script>
    </head>
    <body>
       <div id="div1" onclick="fnAlter()">这是一个div元素</div>
       <input type="button" name="" value="改变标签" onclick="changeColor()">
    </body>
    </html>
    

    提示:函数定义在 <script type="text/javascript"></script> 里面,可以在其他的标签里面设置 onclick="函数名()" 来点击标签调用函数

    • 使用:行间事件

二、提取行间事件与匿名函数

  • 2.1、由于在一中我们把函数的调用写在了 标签(行间)里面,这样做不太好,我们可以把行间事件提取出来,如下

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>提取行间事件</title>
       <script type="text/javascript">
            window.onload = function () {
    
                 var oBtn = document.getElementById('button1');
                 oBtn.onclick = fnChangeDiv;
    
                 function fnChangeDiv() {
                      var oDiv = document.getElementById('div1');
                      oDiv.style.color = 'red';
                      oDiv.style.fontSize = '30px';
                 }
            }
       </script>
    </head>
    <body>
       <div id="div1">这是一个div</div>
       <input type="button" value="改变标签" name="" id="button1">
    </body>
    </html>
    
  • 2.2、匿名函数

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>提取行间事件</title>
       <script type="text/javascript">
           window.onload = function () {
                var oBtn = document.getElementById('button1');
                oBtn.onclick = function() {
                    var oDiv = document.getElementById('div1');
                    oDiv.style.color = 'red';
                    oDiv.style.fontSize = '30px';
                };   
           }
       </script>
    </head>
    <body>
       <div id="div1">这是一个div</div>
       <input type="button" value="改变标签" name="" id="button1">
    </body>
    </html>
    

    提示:匿名函数仅仅是把 2.1 中 函数fnChangeDiv名字去掉,直接一步到位 oBtn.onclick = function(){},函数没有了名字也就成了匿名函数

    • 使用的情况:仅仅是做一件事的时候

三、网页换肤

  • 3.1、换肤->仅仅是利用js调用函数更换css,如下

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>网页换肤</title>
       <link rel="stylesheet" type="text/css" href="css/main1.css" id="link1">
       <script type="text/javascript">
            window.onload = function () {
    
               var oBtn1 = document.getElementById('button1');
               var oBtn2 = document.getElementById('button2');
    
               var oLink = document.getElementById('link1');
    
               oBtn1.onclick = function () {
                   oLink.href = 'css/main1.css';
              };
              oBtn2.onclick = function () {
                   oLink.href = 'css/main2.css';
              };
           }
    </script>
    
    </head>
    <body>
        <input type="button" value="皮肤1" name="" id="button1">
        <input type="button" value="皮肤2" name="" id="button2">
    </body>
    </html>
    

四、变量和函数的域解析

  • 4.1、JavaScript解析过程分为两个阶段,先是编译阶段,然后执行阶段,在编译阶段会将function定义的函数提前,并且将var定义的变量声明提前,将它赋值为undefined。也就是未定义先使用

  • 4.2、变量的域解析:变量在未定以前如果使用,值会被赋值为undefined

    <script type="text/javascript">
        alert(iNum);
        var iNum = 20;
    </script>
    
  • 4.3、函数的域解析:在编译阶段会将function定义的函数提前,函数在定义前或者定义后调用都没事

    <script type="text/javascript">
        changeValue()
        function changeValue() {
            alert("hello world!")
        }
    </script>
    

五、函数传参与return关键字

  • 5.1、函数传参

    • <1>、基本的传值

      <script type="text/javascript">
            function test(a) {
                 alert(a);
            }
            test('hello world!');
      </script>
      
    • <2>、传值改变标签样式

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>函数传参-return关键字</title>
          <script type="text/javascript">
                window.onload = function () {
                     function fnChangeStyle(mystyle,val) {
                         var oDiv = document.getElementById('div1');
                         oDiv.style[mystyle] = val;
                    }
                   fnChangeStyle('color','red')
                }
          </script>
      </head>
      <body>
          <div id="div1">测试样式</div>
      </body>
      </html>
      
  • 5.2、return关键字的作用:返回函数执行的结果、结束函数的运行、阻止默认行为

    • <1>、求和函数,返回结果

      <script type="text/javascript">
           function fnAdd(a,b) {
                return a+b;
           }
      
           alert(fnAdd(3,7));
      </script>
      
    • <2>、结束函数的运行

      <script type="text/javascript">
           function fnAdd(a,b) {
                return a+b;
                alert('这里不会再走');
           }
           alert(fnAdd(3,7));
      </script>
      
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,827评论 2 17
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,626评论 1 45
  • JavaScript介绍JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户...
    LiWei_9e4b阅读 461评论 0 0
  • 事件对象 鼠标事件 event.clientX在可视区中,鼠标点击的x坐标 event.clientY在可视区中,...
    LaBaby_阅读 599评论 0 1
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,285评论 0 3