JavaScript

Web资源分类

静态资源:html、css、js、txt、mp4、jpg
动态资源:jsp、servlet

关系运算
等于 == 简单做字面比较
全等于 === 类型和数值都要等

逻辑运算
且: &&
或: ||
取反: !
**且: &&(短路记忆法)
当表达式全为真的时候,返回最后一个表达式的值
当表达式中,有一个为假的时候,返回第一个为假的表达式的值
**

var b =12;
var  c= undefined
if (b&& c){

    alert("零为真")
}else {
    alert("零为假")
}

或 ||
当表达式全为真的时候 返回第一个表达式的值
当表达式有一个为假的时候,返回第一个为真的表达式的值

数组(像集合 自动变更长度)

var arr=[10];
arr[0]=1;
arr[12]=2;
alert(arr.length)

任何没被赋值的变量输出都是undifine
Function定义函数
使用格式如下
Function 函数名(形参列表){

function f() {
    alert("无参函数被调用了")
}
f()  //要被调用

带参函数

var  a =10;
var b=undefined;
function f(a,b) {
    alert(a);
    alert(b);
}
f(a,b)

有返回值的函数,直接写return

var  a =10;
var b=undefined;
function f(a,b) {

    return a+b;
}
alert(f(a,b));

函数的第二种定义

var  a =10;
 var b=20;
var f =function (a,b) {
     return a+b;
};
alert(f(a,b))

注意JS不能重载,会覆盖之前的定义
函数的arguments 隐形参数(只在function函数内)
在funciton函数中不需要定义,但却可以用来获取所有参数的变量。管他叫隐形参数。
像java的可变形参一样 像java数组一样有length长度

<script>
    var a=1;
    var b=1;
    var c=1;
    var d=1;
    var e=1;
   var f =function () {
       alert(arguments.length);
        return a+b+c+d+d+e;
   };
   alert(f(a,b,c,d,e))
</script>

计算输入的参数值用arguments循环,可以计算不确定输入个数的总和

var x =0;
 var a=1;
 var b=1;
 var c=1;
 var d=1;
 var e=1;
var f =function () {
    for (let i = 0; i <arguments.length ; i++) {
        x=x+arguments[i];
    }
    alert(x)
};
f(a,b,c,d,e,);

JS中的自定义对象
可以直接对里面属性赋值,也可以直接输出

var x =new Object();
x.name="deng";
x.age = 18;
x.fun = function () {
   alert(x.age);
   alert(x.name);
};
x.fun();

成员变量和全局变量

成员变量:在浏览器打开的时候分配内存空间,关闭的时候销毁
局部变量:在函数体当中声明的变量,调用函数的时候分配空间,执行结束后,内存释放。

var s =123;
function f() {
    var s = 456;
    var a =1;
    alert(s)
}
f();
alert(s);
alert(a);//内存已释放,没有值

当一个变量声明的时候没有写var时候默认是成员变量。

<script>
    function f() {
        s = 456;
        alert(s)
    }
    f();
   alert(s);

</script>

**Js方法不能重载,重写
默认会调用最近方法,同名函数之后的会覆盖之前的。
**

JS的数据类型string int 布尔Object null undefined

引用数据类型:Object function
基本数据类型 Sring int 布尔 null undefined
放到typeof中 时以下6个字符串之一(undefined,number,string,object,function)
Null =Object

检查输入的值是否是number
var d = function (a,b) {
    if (typeof a !== "number" && typeof b !== "number"){
        alert("输入的值有误")
    }else {
        alert(a+b)
    }
};

Undifined
一个变量在声明的时候没有进行赋值就是undefined类型
Null

  1. 也是属于原始类型
  2. Typeof null运行结果时Object

Number类型(小数,正数,NaN,Infinity)

  1. Number类属于原始类型
  2. Number类型都有哪些值
    1.小数
    2.正数都是
    3.NaN(当计算结果应该是一个数字,但没有返回一个数字时就是NaN)
    4.Infinity
    这里解释以下NaN():当输入的必须是数字时,却没有输出数字
function f() {
    var a = 10;
    var b ="ss";
    var c = a*b;//这个c是一个NaN
    alert(typeof c);
}
f()

Infinity解释

function f() {
    var a = Infinity;
    alert(typeof a);
}
f()

5.在Number类型中有一个函数叫 isNaN()函数 true表示是一个数字,false表示不是一个数字。

function f() {
    var a = Infinity;
    alert(isNaN(a));
}
f()

6.在Number类型中有一个函数娇Number()将一个非数字类型转为数字类型

var i ="10";
var z ="2";
// var sum = Number(i)+Number(z);
// var sum = i+z;
alert(sum);

7.String转number(JAVA)

function f() {
var a =“keivn啊啊啊”//这个不能转
  var i ="keivn";
  var z = parseInt(i);
  alert(typeof z)
}

8.四舍五入(数学类)

function f() {
  var i =123.9;
  var s = Math.ceil(i);
  alert(s)
}

布尔类型
1.只有两个值true 和false
2.有个函数,作用是不是布尔类型转为布尔类型(转换规律,只要有东西就是true,未定义 空 NaN 都是false)

function f() {
  var i = "true";
  var s = Boolean(i);
  console.log(s)
}

Javascript中的事件

1 
function cle() {
    document.getElementById("testa").onclick =function () {
        alert("click1")
    }
    document.getElementById("testb").onclick =function () {
        alert("click2")
    }
}
2.
window.onclick =function () {
    document.getElementById("test1").onclick =function () {
        alert("click1")
    }
    document.getElementById("test2").onclick=function () {
        alert("click2")

跳到json

1.json概述
数据交换两个方法
Xml体积大解析难度大(一般和钱有关系的严谨的系统都采用xml交换)
Json体积小,解析更容易 (java-c++、javascript-java)

相比来说xml语法严格,json语法松散
在javscript中json是一个对象。
3. javascript怎么创建json对象,怎么访问json
注意[]中括号是数值,{}大括号是json

//格式
var jsonObj={
    "属性名":属性值,
    "属性名":属性值,
    "属性名":属性值,
    "属性名":属性值,
    "属性名":属性值,
    ...
};
//访问对象属性
    console.log(jsonObj.属性名)
console.log(jsonObj["属性名"])

例子

var st = [20];
st[20] = 12;
alert(st.length);
var person= {
    "name":"kobe",
    "age":43,
    "position":["movie","basketball","father"]
};
console.log(person.name);
console.log(person.age);
for (let i = 0; i <person.position.length ; i++) {
    console.log(person.position[i])
}

设计一个json格式的数据可以表示全班人数和每个学生信息

var class1= {
    "Total":3,
    "det":[{"name":"kevin","age":23},{"name":"k","age":23},{"name":"ke","age":23}]
};

console.log(class1.Total);
var s = class1.det;
for (let i = 0; i <s.length ; i++) {
    console.log(s[i].name+","+s[i].age)
}

Json用于交换数据
Java将 数据拼接成Json格式的string字符串,给json,json转换成对象。
Window.eval(“将字符串当js执行”)
如:获取java来的json格式的字符串。

var jsonfromjava ="{\"name\":\"kevin\",\"age\":23}";
window.eval("var stu ="+ jsonfromjava);
console.log(stu.name)

浏览器向服务器发送请求的方法

  1. 直接在浏览器地址栏写URL,get请求
  2. 点击页面超链接,get请求。
  3. 提交form表单,可以是get,也可以是post
  4. Window.open(url);
  5. Document.location.href=rul;

例子

!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var jsonfromjava = "{\"ID\":1,\"Name\":\"Kabul\",\"CountryCode\":\"AFG\",\"District\":\"Kabol\",\"Population\":1780000}";
        window.onload =function () {
            document.getElementById("display").onclick =function () {
                //解析json来的字符串获取记录数
                window.eval("data = "+jsonfromjava);
                document.getElementById("total_span").innerHTML = data.ID;
                document.getElementById("num").innerHTML = data.ID;
                document.getElementById("nam").innerHTML = data.Name;
                document.getElementById("cityco").innerHTML = data.CountryCode;
                document.getElementById("pla").innerHTML = data.District;
                document.getElementById("popu").innerHTML = data.Population;
            }
        };
    </script>
</head>
<body>
<!--    <form method="get" action="http://localhost:8080/jsontet_war_exploded/welcome">-->
    <form>
        <input type="button" value="查找数据" id="display">
        <table border="1px" width="40%">
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>城市代码</th>
                <th>地区</th>
                <th>人口</th>
            </tr>
            <tbody>
                <tr>
                    <td id="num"></td>
                    <td id="nam"></td>
                    <td id="cityco"></td>
                    <td id="pla"></td>
                    <td id="popu"></td>
                </tr>
            </tbody>
        </table>
        总记录:<span id="total_span">条</span>
    </form>
</body>
</html>

正则表达式

常用的正则表达式符号
. 匹配除换行符意外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配打你的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

*重复零次或更多次

  • 重复一次或更多次
    ?重复零次或一次
    {n} 重复N次
    {n,} 重复n次或更多次
    {n,m} 重复n到m次
    取反
    \W 匹配任意不是字母,数字,下划线,汉字的字符
    \S 匹配任意不是空白符的字符
    \D
    \B
    [^X]匹配除X开始以外的字符
    [^aeiou]匹配除了aeiou意外的字符

|表示或者
js中怎么创建正则表达式对象

var regExp = /正则表达式/标记
标记是可选项!!!!!!

  1. g:全局匹配
  2. i:忽略大小写 ignorecase

js中对象有一个很重要的方法:匹配输入的数是否为true(test)

var emailRegExp = [1-9][0-9]/{4:10};
var ok = emailRegExp.test("用户输入字符串");

正则表达式检验邮箱

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var s =function () {
            var emailRegExp = /^\w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/;
            var a = document.getElementById("email").value;
            var ok = emailRegExp.test(a);
            if(ok){
                alert("输入的地址合法")
            }else {
                alert("输入的地址不合法")
            }
        }
    </script>
</head>
<body>
<form>
    输入邮箱地址:</label><input type="text" id="email">
    <br>
    <input type="button" value="验证邮箱地址" onclick="s()" id="checkemail">
</form>


</body>
</html>

正则表达式判断输入账号并提示

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
            function f() {
                    var  user = document.getElementById("username").value;
                    var emailRegExp=  /^\w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/;
                    uservalue = user.trim();
                    var ok = emailRegExp.test(uservalue);
                    if (ok){
                        document.getElementById("errorusername").innerHTML = "";
                    }else {
                        document.getElementById("errorusername").innerHTML = "输入的账号有误";
                    }
            }
    </script>
</head>
<body>
<form>
    账号:<input type="text" name="account" id="username" onblur="f()"><span id="errorusername"></span><br>
    密码:<input type="password" name="passowrd" id="password"><span></span><br>
    确认密码:<input type="text" name="confirmpassword" id="confirmpassowrd"><span></span><br>
</form>
</body>
</html>

写法二

<script type="text/javascript">
            window.onblur =function () {
                    document.getElementById("username").onblur =function () {
                            alert("失去焦点")
                    }
            }
    </script>
</head>
<body>
<form>
    账号:<input type="text" name="account" id="username"><span id="errorusername"></span><br>
    密码:<input type="password" name="passowrd" id="password"><span></span><br>
    确认密码:<input type="text" name="confirmpassword" id="confirmpassowrd"><span></span><br>

表单验证

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        window.onblur =function () {
            document.getElementById("confirmpassword").onblur = function(){
                var con =document.getElementById("confirmpassword").value;
                var co =con.trim();
                var pas = document.getElementById("password").value;
                if(co == pas){
                    document.getElementById("conspan").innerHTML = "";
                }else {
                    document.getElementById("conspan").innerHTML ="两次输入的密码不一致"
                }
            };
            document.getElementById("password").onblur = function(){
                var pas =document.getElementById("password").value;
                var pa =pas.trim();
                var emailRegExp=/^.{3,20}$/;
                var ok = emailRegExp.test(pa);
                if (pa == ""){
                    document.getElementById("passspan").innerHTML = "密码不能为空"
                }else {
                    if (ok){
                        document.getElementById("passspan").innerHTML =""
                    }else {
                        document.getElementById("passspan").innerHTML ="密码不可用"
                    }
                }
            };
            document.getElementById("account").onblur =function () {
                // alert("失去焦点")
                var acc= document.getElementById("account").value;
                var ac = acc.trim();
                var emailRegExp=/^.{3,20}$/;
                var ok = emailRegExp.test(ac);
                if (ac == ""){
                    document.getElementById("accspan").innerHTML = "不能为空"
                }else {
                    if (ok){
                        document.getElementById("accspan").innerHTML = ""
                    }else {
                        document.getElementById("accspan").innerHTML = "请输入正确的账户";
                    }
                }
            }
        };
        window.onfocus =function () {
            document.getElementById("account").onfocus =function () {
                document.getElementById("accspan").innerHTML ="";
            };
            document.getElementById("password").onfocus =function () {
                document.getElementById("passspan").innerHTML ="";
            };
            document.getElementById("confirmpassword").onfocus =function () {
                document.getElementById("conspan").innerHTML ="";
            }
        };
        //触发焦点事件
        window.onclick =function () {
            document.getElementById("sub").onclick =function () {
                document.getElementById("password").focus();//这里我做错了不是onfocus 是focus 调用事件
                document.getElementById("account").blur();
                document.getElementById("account").focus();
                document.getElementById("password").blur();
                document.getElementById("confirmpassword").focus();
                document.getElementById("confirmpassword").blur();
                if(document.getElementById("accspan").innerHTML == "" && document.getElementById("passspan").innerHTML == "" && document.getElementById("conspan").innerHTML == ""){
                    var s = document.getElementById("su");
                    s.submit();
                }
            }
        }
    </script>
</head>
<body>
<form action="http://localhost:8080/" id="su">
    账户:<input type="text" id="account"><span id="accspan"></span><br>
    密码:<input type="password" id="password"><span id = passspan></span><br>
    确认密码:<input type="password" id="confirmpassword"><span id="conspan"></span><br>
    <input type="button" id="sub" value="提交">
</form>


</body>
</html>

jQuery

什么是jQuery
是javascript的库,封装的大量方法。
官网地址https://jquery/com/
几乎所有浏览器支持
标版:写的更少做的更多
jQuery支持跨浏览器适配不用做多条ifelse
jQuery做动态绑定事件
jQuery基础

  1. 下载
    第一个是压缩版,主要用于部署,占用资源空间小,部署带框占用小,因为去掉了多余的换行符和空格,但是可读性差。
    第二个是非压缩版,保留原格式,可读性好,但比压缩版占用资源多大。
    在这里插入图片描述
  2. 简单的使用
    定义dom对象
    $(“#id”)
    $(“.class名字”)
    ( “ ” 标 签 名 ” ” ) 第 一 个 简 单 的 (“”标签名””) 第一个简单的 ()函数
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>HellojQuery</title>
		<script type="text/javascript" src="./js/jquery-3.6.0.js"></script>
		<script>
			$(document).ready(function(){
				alert("HellojQuery")
			})

		</script>
	</head>
	<body>
		<form id="for">
		账号:<input type="text" id="acc">
		密码:<input type="password" id="pass">
		性别:
		男<input type="checkbox" value="man">
		女<input type="checkbox" value="wuman">
		特长:
		<select>
			<option value="java">java</option>
			<option value="python">python</option>
			<option value="Go">Go</option>
		</select>
		<input type="button" value="提交" id="sub" onclick="$()">
		</form>
	</body>
</html>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值