JavaScript 学习之--------函数 异常 事件冒泡 默认事件

一.函数

  1. 函数
     1.1 定义函数:
     function 函数名(){
       函数体;(代码块)
     }
     1.2 function必须小写,函数调用时,也必须按照函数的相同名称来调用函数;
     1.3 函数名通常小写;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var a = 10;
    var b = 20;
    var sum = a + b;
    alert(sum);
</script>

</body>
</html>

在这里插入图片描述
创建函数:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    function demo(a,b) {
        var sum = a + b;
        return sum;
    }
    var v1 = demo(10,10);
    alert(v1);
</script>

</body>
</html>

在这里插入图片描述

  1. 函数调用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    function demo(a,b) {
        var sum = a + b;
        alert(sum)
    }
    //函数调用 方式一
    demo(10,20);
</script>
<!--方式三-->
<button onclick="demo(1,4)"> 按钮</button>
<!--方式二-->
<form>
    <input type="button" value="按钮" onclick="demo(10,30)">
</form>

</body>
</html>

  1. 带参数的函数:例如,demo(arg1,arg2)
  2. 全局变量与局部变量
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var n = 10;//局部变量
    m = 20;//全局变量
    function demo() {
        var a = 1;//局部变量
        //b这个全局变量 当demo方法调用之后 才会生效
        b = 2;//全局变量
    }
    demo();
    alert(b);
</script>

</body>
</html>

二.异常

  1. 异常:JavaScript引擎执行JavaScript代码时,发生了错误,导致程序停止执行;
  2. 异常抛出:当异常产生,并且将这个异常生成一个错误信息;
  3. 异常捕获:
     3.1 try catch 捕获
      try{
       发生异常的代码块;
      }catch(err){
       错误信息处理;
      }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    function demo() {
        try{
            alert(str);  
        }catch (err) {
            alert(str);
        }
    }
    demo();
</script>
</body>
</html>

3.2 Throw 抛出

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<from>
    <input type="text" id="txt">
    <input id="btn" type="button" onclick="demo()" value="按钮">
</from>
<script>
    function demo() {
        try {
            var e = document.getElementById("txt").value;
            if (e == ""){
                throw "请输入";
            }
        }catch (err) {
            alert(err);
        }
    }
    demo();
</script>
</body>
</html>

在这里插入图片描述

三.JavaScript事件

  1. 什么是事件?
     事件是可以被JavaScript检测到的行为,比如鼠标点击
  2. 主要事件:
    在这里插入图片描述
     2.1 onclick事件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--点击按钮弹出 对话框 鼠标点击事件-->
<button onclick="demo()">按钮</button>
<script>
    function demo() {
        alert("Hello");
    }
</script>
</body>
</html>


  2.2 onchange事件

<form >
    <input type="text" onchange="changeDemo(this)"> // 等价于"alert('Hello,内容改变了')"
</form>
<script>
    function changeDemo(bg) {
        alert("Hello,内容改变了");
    }
</script>

×
  2.3 onselect事件

<form >
    <input type="text" onselect="changeDemo(this)">
</form>
<script>
    function changeDemo(bg) {
        bg.style.background = "red";
    }
</script>

在这里插入图片描述
  2.4 onfocus事件

<form >
    <input type="text" onselect="changeDemo(this)" onfocus="changeDemo1(this)">
</form>
<script>
    function changeDemo(bg) {
        bg.style.background = "red";
    }
    function changeDemo1(bg) {
        bg.style.background = "blue";
    }
</script>

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件</title>
    <link rel="stylesheet" type="text/css" href="2..css">
</head>
<body onload="demo()">
<script>
    function demo() {
        alert("网页加载完毕")
    }
</script>
</body>
</html>

在这里插入图片描述
3. 事件处理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件处理</title>
</head>
<body>
<div id="div">
    <button id="btn1">按钮</button>
    <a href="https:\\www.baidu.com" id="aid">百度一下</a>
</div>

<script>
    //事件冒泡 点击按钮弹出两个对话框 我们得到的id点击按钮是 btn1 id  这是因为 div中 包含 button 的 btn1 id
    document.getElementById("btn1").addEventListener("click",demo);
    //冒泡依次向上传递 传递给div
    document.getElementById("div").addEventListener("click",showDiv);


    document.getElementById("aid").addEventListener("click",showA);
    function demo(e) {
        //alert(e.type);//   click  获取事件类型
        //alert(e.target); //   [object HTMLButtonElement]  html中的button元素  获取事件目标
        //e.stopPropagation();//阻止事件冒泡
        alert("hello");
    }
    function showDiv() {
        alert("div");
    }
    function showA(e) {
        e.stopPropagation();
        e.preventDefault();//阻止事件默认行为 点击a标签的按钮 不会跳转到百度
    }

    var btn1 = document.getElementById("btn1");

    //addEventListener 等价于 attachEvent
    //removeEvent  等价于  detachEvent
    if (btn1.addEventListener) {
        btn1.addEventListener("click", demo1);
    } else if (btn1.attachEvent) {
        btn1.detachEvent
        btn1.attachEvent("onclick", demo1);
    } else {
        btn1.onclick = demo1();
    }

    function demo1() {
        alert("hello1");
    }


    btn1.addEventListener("click",demo1);//添加监听事件,不会覆盖掉其他的事件
    btn1.addEventListener("click",demo2);
    btn1.addEventListener("click",demo3);
    function demo1() {
        alert("hello1");
    }
    function demo2() {
        alert("hello2");
    }
    function demo3() {
        alert("hello3");
    }
    btn1.removeEventListener("click",demo2);//移除事件


</script>

</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值