学习总结JavaScript

1、JavaScript介绍

  • Javascript 语言诞生主要是完成页面的数据验证。
  • JS 是弱类型,Java 是强类型。

特点

  1. 交互性(信息的动态交互)

  2. 安全性(不允许直接访问本地硬盘)

  3. 跨平台性(只要是可以解释 JS 的浏览器都可以执行,和平台无关)

2、JavaScript和html代码的结合

2.1、通过script 引入外部的 js 文件来执行

src 属性专门用来引入 js 文件路径(可以是相对路径,也可以是绝对路径)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="first.js"></script>
</head>
<body>
</body>
</html>

在这里插入图片描述

2.2、script 标签直接定义 js 代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        alert("瓦大西哇")
    </script>
</head>
<body>
</body>
</html>

在这里插入图片描述

3、JavaScript变量

JavaScript 的变量类型:

​ 数值类型: number

​ 字符串类型: string

​ 对象类型: object

​ 布尔类型: boolean

​ 函数类型: function

JavaScript的特殊值

​ undefined 未定义

​ null 空值

​ NaN 非数字,非数值

JavaScript定义变量名格式

​ var 变量名;

​ var 变量名 = 值;

4、关系运算符

	等于:==   比较字面值
	全等于:=== 比较字面值和两个变量的数据类型
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        var a="1";
        var b=1;
        
        alert(a == b);
        alert(a===b);
    </script>
</head>
<body>
</body>
</html>

在这里插入图片描述

5、数组

JavaScript中数组的定义。

​ var 数组名 = [] ; //空数组

​ var 数组名 = [1,‘ABC’,false] ; //定义数组并赋值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        var arr1=[];
        // alert(arr1.length)  //0

        arr1[0]=10;
        // alert(arr1.length) //1


        //在js的数组中,只要通过下标赋值,那么最大的下标值,就会自动的给数组做扩容
        //在这里我们跳过了arr[1],那么arr[1]的值就是未定义,也就是undefined
        arr1[2]="德玛西亚";
        // alert(arr1.length)
        // alert(arr1[1]) //undefined

        //数组的遍历
        for (var i = 0; i <arr1.length ; i++) {
            alert(arr1[i]) //10 undefined 德玛西亚
        }
    </script>
</head>
<body>
</body>
</html>

6、函数

6.1、函数的两种定义方式

6.1.1、使用function关键字

格式:

function 函数名 (参数列表){

函数体

}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
       //定义一个无参函数
       function fun1(){
           alert("无参函数被调用了")
       }
       // fun1(); //函数要调用才会执行

       function fun2(a,b){
           alert("有参函数被调用 a->"+a+",b->"+b)
       }
       // fun2(12,"abc")

       //定义带有返回值的函数
       function fun3(sum1,sum2){
           var result=sum1+sum2;
           return result;
       }
       alert(fun3(1,2));

    </script>
</head>
<body>
</body>
</html>

6.1.2、函数的第二种方式

格式

var 函数名 = function(形参列表){

函数体

}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
       var fun1= function (){
           alert("无参函数")
       }
       // fun1();

       var fun2 = function (a,b){
           alert("有参函数a="+a+",b="+b);
       }
       // fun2(10,20) //有参函数a=10,b=20

       var fun3 = function (sum1,sum2){
           return sum1+sum2;
       }
       alert(fun3(20,10));

    </script>
</head>
<body>
</body>
</html>

注意:在java中,函数是允许被重载的,但是在js中函数的重载会覆盖掉上一次的定义,也就是说,同名函数不管是有参还是无参,都只会呈现最后一次定义的函数内容。

6.2、函数的arguments隐形参数

在function函数中不需要定义,但是却可以直接获取全部参数的变量,就叫隐形参数

js的隐形参数就想java的可变长参数一样。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function fun(a, b, c) {
            alert(arguments.length);
            //可查看参数个数
            alert(arguments[0]);
            alert(arguments[1]);
            alert(arguments[2]);
            alert("a = " + a);
            for (var i = 0; i < arguments.length; i++) {
                alert(arguments[i]);
            }
        }
         fun(1,"ad",true);
    </script>
</head>
<body>
</body>
</html>

7、js中的事件

什么是事件?事件就是输入设备与页面进行交互的响应,称为事件

常见的事件有:

​ onload 加载完成事件 页面加载完成之后,常用于做页面 js 代码初始化

​ onclick 单击事件 用于按钮的点击响应

​ onblur 失去焦点事件 用于输入框失去焦点后验证其输入内容是否合法。

​ onchange 内容发生改变事件 用于下拉列表和输入框内

​ onsubmit 表单提交事件 用于表单提交

7.1、onload加载事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        //onload事件
        function onload_func(){
            alert('静态注册onload事件')
        }
        window.onload = function (){
            alert("动态注册onload事件")
        }
        // onload_func()
    </script>
</head>
<!--onload 事件是浏览器解析完页面之后就会自动触发-->
<body>
</body>
</html>

静态注册:通过 html 标签的事件属性直接赋于事件响应

动态注册:先通过 js 代码得到标签的 dom 对象,然后再通过 dom 对象赋予事件响应

7.2、onclick 单击事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">

        //静态注册
        function onclick_func(){
           alert("静态注册onclick");
       }

       //动态注册
        window.onload = function (){
            var object = document.getElementById("btn");
            object.onclick=function (){
                alert("动态注册onclick")
            }
        }

    </script>
</head>
<body>
<button onclick="onclick_func();">静态注册按钮</button>
<button id="btn">动态注册按钮</button>
</body>
</html>

在这里插入图片描述

7.3、onblur失去焦点事件(每次点击都会加一次)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">

        //静态注册失去焦点
        function onblur_func(){
            //console控制台对象
            //log
            console.log("静态注册失去焦点");
        }


        //动态注册失去焦点
        window.onload = function (){
            //获取标签对象
            var obj = document.getElementById("password");
            //标签对象.事件名称 = function(){};
            obj.onblur=function (){
                console.log("动态注册失去焦点")
            }
        }
    </script>
</head>
<body>
我爱你<input type="text" onblur="onblur_func();"><br/>
我恨你<input id="password" type="text"><br/>

<!--<button οnclick="onblur_func();">静态注册按钮</button>-->
<!--<button id="btn">动态注册按钮</button>-->
</body>
</html>

在这里插入图片描述

7.4、onchange事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function onchange_func(){
            alert("选择的球类发生改变")
        }
        
        window.onload = function (){
            //1、获取标签对象
            var obj = document.getElementById("btn")
            obj.onchange = function (){
                alert("选择的乐器发生改变")
            }
        }
    </script>
</head>
<body>
<!--静态注册onchange事件-->
<select onchange="onchange_func()">
    <option>球类</option>
    <option>篮球</option>
    <option>排球</option>
    <option>足球</option>
</select>
<select id="btn">
    <option>乐器</option>
    <option>吉他</option>
    <option>口琴</option>
    <option>架子鼓</option>
</select>
</body>
</html>

7.5、onsubmit 表单提交事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function onsubmit_func(){
            alert("静态注册表单提交")
            return false;
        }
        
        <!--return false可以阻止表单提交-->
        window.onload = function (){
            //1、获取标签对象
            var obj = document.getElementById("btn")
            obj.onsubmit = function (){
                alert("动态注册表单提交");
                return false;
            }
        }
    </script>
</head>
<body>
<!--return false可以阻止表单提交-->
<form action="http://localhost:8088" method="get" onsubmit="return onsubmit_func()">
    <input type="submit" value="静态注册">
</form>
<form action="http://localhost:8088" id="btn">
    <input type="submit" value="动态注册">
</form>
</body>
</html>

8、document对象

在这里插入图片描述通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

  • JavaScript 能够改变页面中的所有 HTML 元素
  • JavaScript 能够改变页面中的所有 HTML 属性
  • JavaScript 能够改变页面中的所有 CSS 样式
  • JavaScript 能够对页面中的所有事件做出反应

Document 对象的理解:

一:Document 它管理了所有的 HTML 文档内容。

二:document 它是一种树结构的文档。有层级关系

三:它让我们把所有的标签 都 对象化

四:我们可以通过 document 访问所有的标签对象。

什么是对象化?

比如在java中,一个简单的person类

class Person{
    private int age;
    private String name;
    private String sex;
}
	

那在html中的对象化就是

<body> 
<div id="password">密码</div> 
</body>

8.1、Document 对象中的方法介绍

document.getElementById(elementId) 通过标签的 id 属性查找标签 dom 对象,elementId 是标签的 id 属性值

document.getElementsByName(elementName) 通过标签的 name 属性查找标签 dom 对象,elementName 标签的 name 属性值

document.getElementsByTagName(tagname) 通过标签名查找标签 dom 对象。tagname 是标签名

document.createElement( tagName) 方法,通过给定的标签名,创建一个标签对象。tagName 是要创建的标签名

比如:

document : 文档

get: 获得

element: 元素

by: 通过

id: id

理解为:通过id获取文档中的元素
在这里插入图片描述

8.1.2、getElementById方法

getElementById是指定id来查找对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function onclick_func(){
            //获取身份证元素
            var idcardobj=document.getElementById("idcard");
            //获取文本框的值
            var idcardText = idcardobj.value;
            //正则匹配
            var patt=/^\d{15}(\d{2}[A-Za-z0-9])?$/;

            if(patt.test(idcardText)){
                alert("身份证合法")
            }else{
                alert("身份证不合法")
            }
        }
    </script>
</head>
<body>
身份证:<input type="text" id="idcard" value="sfz"/>
</span>
<button onclick="onclick_func()">校验</button>
</body>
</html>

在这里插入图片描述

8.1.3、getElementsByName方法

getElementsByName是指定name属性来查找对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        //全选
        function checkall(){
         //让所有的复选框都选中
            var hobbyies = document.getElementsByName("hobby");
            for (var i = 0; i <hobbyies.length ; i++) {
                hobbyies[i].checked = true;
            }
        }
        //全不选
        function nocheck(){
            //让所有的复选框都不选中
            var hobbies = document.getElementsByName("hobby");
            for (var i = 0; i <hobbies.length ; i++) {
                hobbies[i].checked = false;
            }
        }

        //反选
        function  checkReverse(){   
            var hobbies = document.getElementsByName("hobby");
            for (var i = 0; i <hobbies.length ; i++) {
                hobbies[i].checked = !hobbies[i].checked;
            }
        }
    </script>
</head>
<body>
爱好:
<input type="checkbox" name="hobby" value="篮球" checked="checked">篮球
<input type="checkbox" name="hobby" value="足球">足球
<input type="checkbox" name="hobby" value="排球">排球
<br/>
<button onclick="checkall()">全选</button>
<button onclick="nocheck()">全不选</button>
<button onclick="checkReverse()">反选</button>
</body>
</html>

在这里插入图片描述

8.1.4、getElementsByTagName

document.getElementsByTagName 是按照指定标签名来查找对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        //全选
        function checkall(){
         //让所有的复选框都选中
            //document.getElementsByTagName 是按照指定标签名来查找对象
            var inputs = document.getElementsByTagName("input");
            for (var i = 0; i <inputs.length ; i++) {
                inputs[i].checked = true;
            }
        }
    </script>
</head>
<body>
爱好:
<input type="checkbox" name="hobby" value="篮球" checked="checked">篮球
<input type="checkbox" name="hobby" value="足球">足球
<input type="checkbox" name="hobby" value="排球">排球
<br/>
<button onclick="checkall()">全选</button>
</body>
</html>

8.1.5、节点的常用属性和方法

  • getElementsByTagName() 获取当前节点的指定标签名的子节点

  • appendChild( ChildNode ) 添加一个子节点

childNodes 属性,获取当前节点的所有子节点

firstChild 属性,获取当前节点的第一个子节点

lastChild 属性,获取当前节点的最后一个子节点

parentNode 属性,获取当前节点的父节点

nextSibling 属性,获取当前节点的下一个节点

previousSibling 属性,获取当前节点的上一个节点

className 用于获取或设置标签的 class 属性值

innerHTML 属性,表示获取/设置起始标签和结束标签中的内容

innerText 属性,表示获取/设置起始标签和结束标签中的文本

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林中有神君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值