Javascript基础

1、Javascript

1.1 js与html结合

(1)第一种方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--    在head或者body标签中使用一个script标签-->
    <script type="text/javascript">
        alert('Hello!');
    </script>
</head>
<body>
    <script type="text/javascript">
        alert('hello!');
    </script>
</body>
</html>

(2)第二种方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--    将js代码写到一个js文件中通过script标签引用,不能同时用两种方法。-->
    <script type="text/javascript" src="../js/js01.js">
    </script>
</head>
<body>
</body>
</html>

1.2 js的变量类型

数值类型:number;
字符类型:string;
对象类型:object;
布尔类型:bool;
函数类型:function;

1.3 js里的特殊的值

undefined:所有js变量没有赋初值时,默认值都是undefined;
null:空值;
NAN:not a number,非数值和非数字。

1.4 js里定义变量的格式

var 变量名;
var 变量名 = 值。

1.5 js提供的一些函数

typeof(变量)可以取变量的数据类型返回;

1.6 js里的关系运算

==是简单的做字面值的比较;
===是除了做字面值的比较还要比较数据类型。

1.7 js里的逻辑运算

(1)且运算:&&当表达式的值全为真的时候,返回最后一个表达式的值。当表达式中有一个为假的时候,返回第一个为假的表达式的值;
(2)或运算:||当表达式的值全为假的时候,返回最后一个表达式的值。当表达式中有一个为真的时候,返回第一个为真的表达式的值;
(3)且运算和或运算都有短路,即且运算中如果左边的表达式的值为false就不会继续计算后面的表达式的值,直接返回false;而或运算中如果左边表达式的值为true就回直接返回true。
(4)取反运算:!;
(5)JavaScript中所有的变量都可以作为一个boolean类型的变量去使用,其中0,null,undefined,""(空串),都认为是false,其他的都为true。

1.8 js里的数组

(1)定义:
var 数组名 = [](空数组);
var 数组名 = [元素];
(2)js里的数组只要赋了值,就能自动扩容,前面没有扩容的元素的值为undefined;

1.9 js里的函数

(1)定义:
第一种:使用function关键字定义函数:
function函数名(形参列表){函数体};

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function fun1() {
            alert('hello!');
        }
        function fun2(a, b) {
            return a+b;
        }
        fun1();
        alert(fun2(1, 2));
    </script>
</head>
<body>

</body>
</html>

第二种:
var 函数名 = function(形参列表){函数体};

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        var fun1 = function() {
            alert('hello!');
        }
        var fun2 = function(a, b) {
            return a+b;
        }
        fun1();
        alert(fun2(1, 2));
    </script>
</head>
<body>

</body>
</html>

(2)js中函数不允许重载,如果重载会直接覆盖掉上一次的定义。
(3)隐形参数argument,即在function函数中不需要定义就可以直接获取所有参数的变量。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function fun() {
            alert(arguments)
            alert(arguments[0]);
            alert(arguments[1]);
            alert(arguments[2]);
            alert(arguments[3]);
        }
        fun(1,2,3);
    </script>
</head>
<body>

</body>
</html>

1.10 js里的字定义对象

(1)定义:
第一种形式:
var 变量名 = new Object();
变量名.属性名 = 值;
变量名.函数名 = function(){};

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        var user = new Object();
        user.name = "Xuan";
        user.age = 19;
        user.getAge = function () {
            alert(this.age);
        }
        alert(user.name);
        user.getAge();
    </script>
</head>
<body>

</body>
</html>

第二种形式:
var 变量名 = {
属性名:值;
函数名:function(){};
}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        var user = {
            name:"Xuan",
            age:19,
            getAge:function () {
                alert(this.age);
            }
        }
        alert(user.name);
        user.getAge();
    </script>
</head>
<body>

</body>
</html>

(2)访问:
变量名.属性;
变量名.函数名();

1.11 js里的事件

事件的注册(绑定):
(1)静态注册:通过html标签的事件属性直接赋于事件响应后的代码;
(2)动态注册:先通过js代码得到标签的dom对象,然后再通过dom对象.事件名 = function(){}这种形式赋于事件响应后的代码。

1.11.1 onload事件

页面加载完之后自动触发的一些操作。
静态注册:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function onloadFun() {
            alert('静态注册onload!');
        }
    </script>
</head>
<body onload="onloadFun();">

</body>
</html>

动态注册:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        window.onload = function () {
            alert('动态注册onload!');
        }
    </script>
</head>
<body>

</body>
</html>

1.11.2 onclick事件

常用于按钮的点击响应。
静态注册:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function onclickFun() {
            alert('静态注册onclick!');
        }
    </script>
</head>
<body>
    <button onclick="onclickFun()">click me!</button>
</body>
</html>

动态注册:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        window.onload = function () {
            var bt01 = document.getElementById("bt01");
            bt01.onclick = function () {
                alert('动态注册onclick!');
            }
        }
    </script>
</head>
<body>
    <button id="bt01">click me!</button>
</body>
</html>

1.11.3 onblur事件

常用于输入框失去焦点后验证其输入内容是否合法。
静态注册:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function onblurFun() {
            input01.value = input01.value.toUpperCase();
        }
    </script>
</head>
<body>
<input type="text" onblur="onblurFun()">
</body>
</html>

动态注册:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        window.onload = function () {
            var input01 = document.getElementById("input01");
            input01.onblur = function () {
                input01.value = input01.value.toUpperCase();
            }
        }
    </script>
</head>
<body>
<input type="text" id="input01" value="onblur">
</body>
</html>

1.11.4 onchange事件

常用于下拉列表和输入框内容发生改变后操作。
静态绑定:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function onchangeFun() {
            alert('your hero is changed!');
        }
    </script>
</head>
<body>
select your hero!
<select onchange="onchangeFun()">
    <option>亚索</option>
    <option>刀妹</option>
    <option>剑姬</option>
    <option>锐雯</option>
</select>
</body>
</html>

动态绑定:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        window.onload = function () {
            var hero = document.getElementById("hero");
            hero.onchange = function () {
                alert('your hero is changed!');
            }
        }
    </script>
</head>
<body>
select your hero!
<select id="hero">
    <option>亚索</option>
    <option>刀妹</option>
    <option>剑姬</option>
    <option>锐雯</option>
</select>
</body>
</html>

1.11.5 onsubmit事件

常用于验证表单项是否合法,return false可以阻止表单提交。
静态注册:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function onsubmitFun() {
            alert('静态注册onsubmit不合法!');
            return false;
        }
    </script>
</head>
<body>
<form action="http://localhost:8080" method="get" onsubmit="return onsubmitFun()">
    <input type="submit" value="静态注册">
</form>
</body>
</html>

动态注册:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        window.onload = function () {
            var sub = document.getElementById("sub01");
            sub.onsubmit = function () {
                alert('动态注册onsubmit不合法!');
                return false;
            }
        }
    </script>
</head>
<body>
<form action="http://localhost:8080" method="get" id="sub01">
    <input type="submit" value="静态注册">
</form>
</body>
</html>

1.12 js里的document对象

(1)把文档中的标签、属性、文本转换为对象来管理,管理了所有的html文档内容;
(2)是一种树结构的文档,有层级关系;
(3)把所有的标签都对象化;
(4)可以通过document访问所有的标签对象。

1.12.1 getElementById(elemenId)

返回拥有指定id的第一个对象的引用。

1.12.2 getElementByName(elementName)

返回带有指定名称的对象的集合。

1.12.3 getElementByTagName(tagName)

返回带有指定标签名的对象的集合。

1.12.4 createElement(tagName)

创建一个标签对象。

1.13 案例:验证用户名是否有效

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function onclickFun() {
            var passwordObj = document.getElementById("password");
            var passwordText = passwordObj.value;

            var psdSpanObj = document.getElementById("psdSpan");
            var patt = /^\w{5,12}$/
            //test()方法用于测试某个字符串是否匹配规则
            if (patt.test(passwordText))
                //innerHTML表示起始标签和结束标签之间的内容,可读可写。
                psdSpanObj.innerHTML = "用户名合法!";
            else
                psdSpanObj.innerHTML = "用户名不合法!";

        }
    </script>
</head>
<body>
    密码:<input type="text" id="password" value="12345">
    <span id="psdSpan" style="color: red"></span>
    <button onclick="onclickFun()">submit</button>
</body>
</html>

1.14 正则表达式

1.15 节点的常用属性和方法

1.15.1 方法:

(1)getElementByTagName()获取当前节点的指定标签名孩子节点。
(2)appendChild(oChildNode)添加一个子节点。

1.15.2 属性:

(1)childNodes获取当前节点的左右子节点;
(2)firstChild获取当前节点的第一个子节点;
(3)lastChild获取当前节点的最后一个子节点;
(4)parentNode获取当前节点的父节点;
(5)nextSibling获取当前节点的下一节点;
(6)previousSibling获取当前节点的上一节点;
(7)className用于获取或设置标签的class属性值;
(8)InnerHtml获取/设置起始标签到结束标签中的内容;
(9)InnerText获取/设置起始标签到结束标签中的文本;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值