美文网首页我爱编程
JavaEE-5-JavaScript&DOM

JavaEE-5-JavaScript&DOM

作者: ZzzRicardo_Yue | 来源:发表于2018-08-09 16:56 被阅读0次

    引言

    JavaScript是一门嵌入式编程语言,主要是用于开发交互式的html页面(比如轮播图、定时弹广告、注册检测等),它是嵌入到html中,而且这个语言不需要编译,直接用浏览器就可以运行。

    我们学习一门新的编程语言:
        常量/变量
        数据类型
        if,switch
        循环for,while
        函数
        事件
        事件和函数绑定
    
    js中的分类:
        ECMAScript:js的核心语法
        BOM:浏览器对象(代表整个浏览器)
        DOM:Document Object Model.浏览器中的元素和内容
    

    1、引入JavaScript的两种方法

    1. 内嵌式:
      必须在一个标签<script>的开始和结束标签之间写
            <script type="text/javascript">
                写js代码
            </script>
    
    JS代码写在<head>标签中
    1. 外联式:
      写在另外一个文件,但是文件的后缀必须为.js
      在HTML中通过 <script>标签引入刚刚写的js文件
      假设我们已经写了一个aa.js的外部js文件
            <script type="text/javascript" src="外部js的路径" charset="utf-8">
                //不能再次写代码
            </script>
    

    2、JavaScript基本语法

    变量的命名规则:和java基本类似
    变量的声明:

    • 在java中: 数据类型 变量名; int a;

    • 在JavaScript中:var 变量; //注意: 在js中变量如果没有赋值 默认值 undefined

       赋值:
          a.定义变量同时赋值  var a = 10;
          b.先定义后赋值: var a; a=10;a="abc";
      

    数据类型(弱类型语言:赋什么值,这个变量它就是什么类型):

    基本类型:
            a.Undefined 只有一个值 undefined,当定义变量并且不赋值的时候,默认值就是undefined
            b.Null  只有一个值 null,空值,但是在ECMAScript中把他们定义成了相等
            c.Boolean,有两个值 true 和 false 
            d.Number,表示任意数字  1 10000000000 3.13 3.13456732345678  J
            e.string,表示字符串,在js中字符串必须用""或者''引起来
    
    引用类型:
            也是一种叫做类(class),但是我们一般不会自己创建对象,而是直接使用
            JS已经给我们准备好的对象,
            所以说JS是基于对象,而不是面向对象
    
    这里的输出就是这个age变量的引用类型

    3、运算符:

    • 算术运算符和逻辑运算符(与&&或||非!):和java一模一样
    • 比较运算符:
      "==":称为值等,只比较两个数据的值,不考虑类型 比如
    var a = "10"  
    a==10          //输出值为true,因为值一样
    

    "===":称为全等,即比较类型 也比较数值, 比如

    var a = "10"  
    a===10 //这是false,因为类型不一样
    

    4、把其他类型的变量转换成Boolean类型

    可以把其他其他类型的变量转换成Boolean类型的值,对应的转换关系如下:


    转换规则
    • Tip:Boolean类型如果参与运算,那么true转成1,false 转成0,然后参与运算


      等性运算
    • Tip:上面NaN==NaN,输出是false,原因是NaN代表“不是一个数字”,双等于号比的是里面的值,这个NaN可能指的是‘A’也可能是'B',所以显然不一定相等

    5、JavaScript基本操作:

    1. alert(内容/变量); //以消息提示框的形式弹出内容或者变量的值
    2. JavaScript中的函数:
    function 函数名(参数列表){
            函数体;
    }
    
    1. 调用的格式:
    函数名(实际参数);
    
    函数也是写在<script>

    Tips:

    1. 参数列表中,只需要写参数名,如果多个参数用逗号相隔
    2. 函数和java中的方法一样,不调用不运行
    3. 函数调用的时候,可以传递任意个实际参数,如果实际参数的个数小于形式参数个数 那么多出来的形式参数默认值为undefined,如果实际参数的个数大于形式参数个数 那么自动忽略多余的实际参数
    4. JavaScript中没有重载这个概念,如果函数名一样,后面定义的函数会覆盖前面定义的函数,也就说在前面定义的函数相当于没写

    本文内容:
    `#点击事件
    ·#控制表单提交
    ·#正则表达式使用
    ·#定时器
    ·#修改CSS样式

    1、绑定点击事件

    当用户点击"submit"按钮时 会发生"表单提交事件"
    如何绑定?

    案例
    注意这里onsubmit绑定的就是一个JavaScript的函数,而这个点击监听器是包含在<form>标签中的属性。
    同时,我们发现绑定点击事件不是绑定在<form>的子标签上,而是直接绑定在<form>标签上!!!这个点击事件应该是自动寻找子标签中type="submit"的元素,然后自动绑定的。

    Tip:JavaScript中如果某一个代码写错了,是没有错误提示的!!!所以最好是写一个小功能就立马进行测试。

    2、返回值控制

    显然这里的是一个发生在表单<form>中的点击事件,虽然这里绑定了点击事件,但是实际上只要点击这个

    image.png
    注意绑定点击事件的时候是onsubmit="return tijiao()",这里是返回tijiao()这个函数的返回值。
    同时我们在function tijiao()return true;这个自然就是反映到onsubmit="return tijiao()"中就是onsubmit="true",此时的效果是什么?

    效果是该表单被成功提交!!!

    如果是onsubmit="false",那么此时的效果是什么?

    效果是该表单没有被提交!!!

    3、获取到<form>表单中的子标签的对象

    相当于Android中的findViewById,这个代码是:

    var inputElement = document.getElementById("uname");
    var username = inputElement.value;     //对获取到的元素对象进行下一步操作
    

    4、JavaScript正则表达式使用

    有如下几种正则表达式使用方法

    1. var b = "需要判断规则的字符串".matches(/^正则表达式$/);
      如果b是true 满足规则 如果b是false 不满足规则
    2. /^正则表达式$/.test("需要判断规则的字符串"); [推荐]

    5、定时器

    引言

    window对象是BOM中的内置对象,这个对象又称为全局对象,是用于在html页面中弹出一个对话框的效果

    window.setInterval(code,millisec); 
    //这个代码的含义就是循环执行这个code,间隔时间是自己设置的millisec的时间
      code:代码段,可以是:
            a. "正常js代码"
            b. 函数名
      millisec:时间间隔,单位是毫秒   
    

    这段代码的意思:设置一个定时器,这个定时器每隔millisec毫秒会触发一次,每次都会执行code代码段(window对象可以不写,直接调用setInterval方法也可以,但是不建议不写)

    定时器setIntervalsetTimeout

    • 设置定时器:
      setInterval(code,毫秒值);//周期定时器,反复周期执行,调用这个方法会返回一个id值,这个id用于取消定时器用
      setTimeout(code,毫秒值);//一次性定时器,只会执行一次,调用这个方法会返回这个定时器的id值,这个id用于取消定时器用
    • 取消定时器:
      clearInterval(你要取消的定时器的id);//取消周期定时器
      clearTimeout(你要取消的定时器的id);//取消一次写定时器

    6、修改一个<>标签的样式属性值

    注意是样式属性值(即是用CSS写在<style>中那部分属性值),这部分属性值修改方法如下:
    obj.style.属性 //获得指定“属性”的值
    obj.style.属性=值 //给指定“属性”设置内容

    • Tip1:如果是用HTML写的属性值,直接obj.属性=···即可
    • Tip2:很多样式的值是string类型的,不是Number类型的!!


      代码示例1
      代码示例2

      注意这里,window.onload代表的就是整个页面加载完成之后的监听器。这里的代码综合运用了5、6两个小节的内容。

    但是这里你会发现最终的效果是无法让div扩大四倍的!!!!!!

    为什么?因为这里var hvar w得到的是string类型的(即“100px”)!!!所以我们需要先进行类型转换:

    类型转换
    然后后面赋值的时候也要进行改变:
    加"px"字样

    这样就可以了

    7、关于表单标签的内容和事件触发

    获取HTML某个标签的内容

    • 标签对象 ···.innerHTML 获取到该标签的内容,开始标签和结束标签之间的都是内容
      使用innerHTML更改标签内容
      注意里面甚至可以直接写<h1>这种标签,JavaScript会自动对这个进行解析

    有关事件的触发事件:

    • onsubmit:提交按钮点击后 触发的表单提交事件
    • onblur:失去焦点事件,本来鼠标是选择该标签的,然后选中了别的标签的时候
    • onfocus:获取焦点事件,本来鼠标是选择别的标签,然后选中了该标签


      function部分
      <body>中标签部分代码

    8、何为BOM(浏览器对象)?

    BOM是浏览器对象,可以认为是你打开浏览器的时候,里面的大的那种范围的元素,里面分为:

    window对象,全局函数,之前讲过的有setIntervalsetTimeoutonload方法,除此之外,还有:

    • alert(); //提示信息弹出框
    • confirm()://提示信息框(具有确定和取消按钮)
      当你点击确定时返回true,当你点击取消时返回false
    • prompt()://可以输入信息的提示框(具有确定和取消按钮)
      当你点击确定时,返回您输入的信息,当你点击返回时,返回null

    navigator: 导航(做浏览器开发的经常用)

    screen:屏幕对象

    history:浏览记录对象
    这个就是管理我们浏览页面的时候的“前进”、“后退”的那个

    示例

    location:当前浏览的网页地址


    下面讲DOM:

    1、JavaScript响应事件&修改便签中内容

    JavaScript中的一些事件:

    1. onload:页面加载完毕事件
    window.onload = function(){};
    <body onload="init()">
    
    1. onmouseover:鼠标移入事件
    2. onmouseout:鼠标移出事件
    • Tip:标签对象.innerHTML = "内容";//修改标签中内容(内容可以是标签,也可以是文本,也可以是混合体)

    2、在表单<form>上绑定JavaScript事件

    • 方法一:<input type="text" 事件名="函数1();函数2()"> //这里会依次触发函数1,函数2
    • 方法二:
    var input对象 = document.getElementById("对应的id");
    input对象.事件名 = 函数1;
    input对象.事件名 = 函数2;   //只会触发函数2
    

    只会触发函数2!!!!

    使用方法二绑定:

    示例
    如上是两种绑定方法,示例图片中用的是第二种。同时,还用到了##1中的onmouseover监听器,绑定了当onmouseover监听器被触发就执行over()事件。但是这里注意是over,而且只会执行第二个out()

    使用方法一绑定


    示例代码1
    示例代码2

    注意这里相当于是在便签对象中对这个监听器进行绑定

    附录:关于注释

    • HTML的注释标签:
    <!--  -->
    
    • CSS的注释标签:
    /* */
    
    • JS的注释标签:
    /* */     注释代码块
    //          注释单行
    

    相关文章

      网友评论

        本文标题:JavaEE-5-JavaScript&DOM

        本文链接:https://www.haomeiwen.com/subject/txdqbftx.html