第二章 JavaScript函数和事件

一、函数

1.定义函数

语法:

<script type="text/javascript">
    function name() { // name函数名,括号内为参数(形参)
        document.write('这是一个函数'); // 语句
    }
</script>

调用方式:
  在<head>中嵌套<script>标签,在<script></script>中定义一个名为name的函数。通过如下代码调用:

// 调用函数的语句也需要放置在<script>和</script>中。
<script type="text/javascript">name();</script>

定义函数有以下几个规则:
  (1). 使用function关键字,function后是函数名,与c#语言不同,不必说明返回值的类型。
  (2). 函数的命名规则与变量名的命名规则相同。
  (3). 函数名后的(),可以包含若干参数,也可以选择不带任何参数。
  (4). 最后是一对{},包含具体实现特定功能的若干语句。

2.函数的参数

  对于函数外部的语句而言,函数内部语句是不可见的,这时就需要一种沟通机制,参数就是它们沟通的桥梁。参数也是一种变量,但这种变量只能被函数体内的语句使用,并在函数被调用时赋值,通常它们被称为形式参数。
  使用方法:

<script type="text/javascript">
        // 创建函数
        function getTotal(salary, bonus){
            document.writeln("工资和奖金的总额是:"+(salary+bonus)+"元");
        }
</script>
<body>
    <!--函数参数的演示效果-->
    张三:<script type="text/javascript"> getTotal(4800,2300);</script>
    李四:<script type="text/javascript"> getTotal(6400,3100);</script>
</body>
3.函数的返回值

  函数的参数是外部语句对函数内部语句的信息传递,函数的返回值刚好相反,能够将一个结果返回给外部语句使用。
  语法:

    return 返回值;
    var result = 函数(参数);

  函数返回值的使用:

<script type="text/javascript">
        // 创建有返回值的函数
        function getArea(width,height){
            var result=width*height;
            return result;
        }
</script>
<p>宽度是:3,高度是:4的长方形面积是:
        <script type="text/javascript">
            // 调用有返回值的函数
            var area=getArea(3,4);
            document.write(area);
        </script>
</p>
4.变量的作用域

  (1).全局变量:在函数体外部声明,可以在任何地方包括函数的内部使用。
  (2).局部变量:在函数体内声明,只能在函数体内使用,随着函数的结束而消失。

5.系统函数

  (1).parseInt函数

<script type="text/javascript">
        // 将字符串转换为整数,仅接收一个参数
        parseInt("150.1cats"); // 150
</script>

  (2).parseFloat函数

<script type="text/javascript">
        // 与parseInt函数类似,该函数返回一个浮点数
        parseFloat("150.13cats"); // 150.13
</script>

  (3).isNaN函数

<script type="text/javascript">
        // 用于判断参数是否是NaN(不是数字),如果是返回true,否则返回false
        var flag = isNaN("string");
        document.write(flag) // true
</script>

二、事件

1.onclick事件

  onclick事件是JavaScript中最常用的事件,它用于接收鼠标对页面元素按下,并抬起的动作,又称为单击事件。

<script type="text/javascript">
        function show() {
            alert("onclick事件");
        }
</script>
<body>
    <!--点击按钮,弹出提示框-->
    <input type="button" value="点击" onclick="show()"/>
</body>
2.onload事件

  onload事件会在页面加载完成后立即发生。

<body onload="document.title='onload事件'">
    <!--修改标题为onload事件-->
</body>
3.onblur事件

  onblur事件是指光标或者焦点离开元素后触发的事件,常用来验证表单。

<script type="text/javascript">
        // 判断密码长度是否在6位以上
        function checkPwd() {
            var pwd = document.getElementById("txtPwd").value;
            if(pwd.length <= 6) {
                alert("密码的长度必须在6位以上");
            }

        }
</script>
<body>
    <p>
        请输入密码:<input type="password" id="txtPwd" onblur="checkPwd()"/>
    </p>
</body>
4.onchange事件

  onchage事件通常指输入框的值发生了变化,或者改变下拉列表框的选项会触发onchange事件。

<script type="text/javascript">
        function changeLink(obj) {
            if(obj.value != "请选择") {
                // 根据选择的网站,在新窗口打开相应的首页
                window.open(obj.value);
            }
        }
</script>
友情链接
    <select onchange="changeLink(this)">
        <option value="请选择">请选择</option>
        <option value="https://www.jianshu.com/">简书</option>
        <option value="https://www.baidu.com/">百度网</option>
        <option value="https://www.w3school.com.cn/html/index.asp">HTML教程</option>
    </select>
5.onmouseover事件和onmouseout事件

  onmouseover和onmouseout事件是指鼠标移入、移出页面元素时触发的事件。

<marquee direction="right" onmouseover="stop()" onmouseout="start()">
        <!--鼠标移入时,图片停止滚动;移出时,图片继续滚动-->
        <img src="tupian.jpg" width="150px" height="150px"/>
</marquee>
6.onmousemove事件

  onmousemove事件是鼠标指针移动时发生的事件,以像素为单位,每移动1像素onmousemove()方法则触发一次。

<style type="text/css">
        div {
            width: 200px;
            height: 200px;
            background-color: #ccc;
        }
</style>
<script type="text/javascript">
        // 计数器
        var count = 0;
        function move() {
            document.getElementById("sp").innerHTML = ++count;
        }
</script>
<body>
    移动了<span id="sp">0</span>像素
    <div onmousemove="move();"></div>
</body>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容

  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,551评论 0 5
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,113评论 0 21
  • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
    mo默22阅读 1,264评论 0 5
  • 基本概念 事件是一些特定动作发生时所发出的信号,JavaScript中的事件是可以被 JavaScript 侦测到...
    Zd_silent阅读 456评论 0 1
  • 我们先大致来了解一下javascript的内容,然后由浅入深的来学习,进一步提升对WEB前端技术的兴趣。 如何插入...
    yezi1004阅读 1,297评论 0 0