javaweb--JavaScript

一:简介

JavaScript 是一门跨平台、面向对象的脚本语言 ,用来控制网页行为的,它能使网页可交互
JavaScript Java 是完全不同的语言,不论是概念还是设计,只是名字比较像而已,但是基础语法类似
JavaScript (简称: JS ) 在 1995 年由 Brendan Eich 发明,并于 1997 年成为一部 ECMA 标准。 ECMAScript 6 ( 简称 ES6) 是最新的 JavaScript 版本(发布于 2015 )

二:JavaScript引入方式

1.内部脚本:

2.外部脚本:

三:JavaScript基础语法

1.书写语法

2.输出语句

<script>
    window.alert("hello js");//写入警告框
    document.write("hello js");//写入html页面
    console.log("hello js");//写入浏览器的控制台
</script>

3.变量

4.数据类型

5.运算符

 /*
        ==:
            1. 判断类型是否一样,如果不一样,则进行类型转换
            2. 再去比较其值

        ===:全等于
            1. 判断类型是否一样,如果不一样,直接返回false
            2. 再去比较其值

     */
    var age1 = 20;
    var age2 = "20";

    // alert(age1 == age2);// true
    // alert(age1 === age2);// false
 /*
        类型转换:
            * 其他类型转为number:
                1. string: 按照字符串的字面值,转为数字.如果字面值不是数字,则转为NaN。一般使用parseInt
                2. boolean: true 转为1,false转为0

            * 其他类型转为boolean:
                1. number:0和NaN转为false,其他的数字转为true
                2. string:空字符串转为false,其他的字符串转为true
                3. null:false
                4. undefined:false


     */

    var str = +"20";//表示转换

    var str = "20";
    alert(parseInt(str) + 1);   //  21


    var flag = +false;
    alert(flag);    //  1

    var str = "abc";    //转为true
     var flag = 3;  //转为false
    var flag = "";  //无内容,转为false
    var flag = undefined;  //转为false

    if(flag){
        alert("转为true");
    }else {
        alert("转为false");
    }



    //健壮性判断
    //if(str != null && str.length > 0){
    if(str){
        alert("转为true");
    }else {
        alert("转为false");
    }

6.流程控制语句


    //1. if
    var count = 3;
    if (count == 3) {
        alert(count);
    }*/



    //2. switch
    var num = 3;
    switch (num) {
        case 1: {
            alert("星期一");
            break;
        }

        case 2: {
            alert("星期二");
            break;
        }

        case 3: {
            alert("星期三");
            break;
        }

        case 4: {
            alert("星期四");
            break;
        }

        case 5: {
            alert("星期五");
            break;
        }

        case 6: {
            alert("星期六");
            break;
        }

        case 7: {
            alert("星期日");
            break;
        }

        default: {
            alert("输入的星期有误");
            break;
        }
    }



    // 3. for
    var sum = 0;
    for (let i = 1; i <= 100; i++) {
        sum += i;
    }
    alert(sum);



   // 4. while
    var sum = 0;
    var i = 1;
    while (i <= 100) {
        sum += i;
        i++;
    }
    alert(sum);



   // 5. do...while
    var sum = 0;
    var i = 1;
    do {
        sum += i;
        i++;
    }
    while (i <= 100);
    alert(sum);

7.函数

(1)方式一

function add(a,b){
       return a + b;
   }


   var result = add(1,2);

   alert(result);

(2)方式二

 var add = function (a,b){
       return a + b;
   }

   var result = add(1,2);   //3
   alert(result);

   var result1 = add(1,2,3); //3
    alert(result1)

   var result2 = add(1);    //NAN
   alert(result2);

四:JavaScript常用对象

1.Array对象

<script>

    //定义数组
    // 方式一
    var arr = new Array(1,2,3);
    alert(arr);
    // 方式二
    var arr2 = [1,2,3];
    alert(arr2);

    // 访问
    arr2[0] = 10;
    alert(arr2)


    // 特点:JavaScript数组相当于Java中集合。变长变类型

    // 变长
    var arr3 = [1,2,3];
    arr3[10] = 10;
    alert(arr3[10]);   //数组长度只有3,但可以访问10
    alert(arr3[9]);

    // 变类型
    arr3[5] = "hello";
    //alert(arr3[5]);   //不同类型可以在同一个数组中
    //alert(arr3);


    // 属性:length:数组中元素的个数
    var arr4 = [1,2,3];
    for (let i = 0; i < arr4.length; i++) {
        alert(arr4[i]);
    }

    // 方法:
       push:添加方法
    var arr5 = [1,2,3];
    arr5.push(10);
    alert(arr5);

       splice:删除元素
    arr5.splice(0,1);
    alert(arr5);

</script>

2.String对象

<script>
    //定义
    //方式一
    var str1 = new String("abc");
    //方式二
    var str2 = "abc";
    var str3 = 'abc';


    //length
     alert(str3.length);   //3


    // trim():去除字符串前后两端的空白字符
    var str4 = '  abc  ';
    alert(1 + str4 + 1);    //1  abc  1
    alert(1 + str4.trim() + 1);    //1abc1

</script>

3.自定义对象

五:BOM

1.window

<script>

    // alert
     window.alert("abc");
     alert("bbb");   //两者皆可


    // confirm,点击确定按钮,返回true,点击取消按钮,返回false
    var flag = confirm("确认删除?");

    alert(flag);
    if(flag){
        //删除逻辑
    }


    // 定时器
    //setTimeout(function,毫秒值): 在一定的时间间隔后执行一个function,只执行一次
      setTimeout(function (){
          alert("hehe");
      },3000);


    //setInterval(function,毫秒值):在一定的时间间隔后执行一个function,循环执行
      setInterval(function (){
          alert("hehe");
      },2000);

</script>

2.History

3.Location

<script>

    alert("要跳转了");
    location.href = "https://www.baidu.com";


    //3秒跳转到首页
    document.write("3秒跳转到首页...");
    setTimeout(function (){
        location.href = "https://www.baidu.com"
    },3000);

</script>

六:DOM

1.概述

DOM Document Object Model 文档对象模型。也就是 JavaScript HTML 文档的各个组成部分封装为对象。
DOM 其实我们并不陌生,之前在学习 XML 就接触过,只不过 XML 文档中的标签需要我们写代码解析,而 HTML 文档是浏览器解析。封装的对象分为:
Document :整个文档对象
Element :元素对象
Attribute :属性对象
Text :文本对象
Comment :注释对象

作用:JavaScript 通过 DOM, 就能够对 HTML进行操作了 ;改变 HTML 元素的内容 ;改变 HTML 元素的样式(CSS) ;对 HTML DOM 事件作出反应 ;添加和删除 HTML 元素

DOM 相关概念:
DOM W3C (万维网联盟)定义了访问 HTML XML 文档的标准。
该标准被分为 3 个不同的部分:
1. 核心 DOM :针对任何结构化文档的标准模型。 XML HTML 通用的标准
        Document:整个文档对象
        Element:元素对象
        Attribute:属性对象
        Text:文本对象
        Comment:注释对象
2. XML DOM : 针对 XML 文档的标准模型
3. HTML DOM : 针对 HTML 文档的标准模型
该标准是在核心 DOM 基础上,对 HTML 中的每个标签都封装成了不同的对象
例如: <img> 标签在浏览器加载到内存中时会被封装成 Image 对象,同时该对象也是 Element 对象。
例如: <input type='button'> 标签在浏览器加载到内存中时会被封装成 Button 对象,同时该对象也是Element 对象

2.获取Element对象

HTML 中的 Element 对象可以通过 Document 对象获取,而 Document 对象是通过 window 对象获取。
Document 对象中提供了以下获取 Element 元素对象的函数
getElementById() :根据 id 属性值获取,返回单个 Element 对象
getElementsByTagName() :根据标签名称获取,返回 Element 对象数组
getElementsByName() :根据 name 属性值获取,返回 Element 对象数组
getElementsByClassName() :根据 class 属性值获取,返回 Element 对象数组

七:事件监听

HTML 事件是发生在 HTML 元素上的 事情 。比如:页面上的 按钮被点击 、  鼠标移动到元素之上 ,按下键盘按键等都是事件。
事件监听是 JavaScript 可以在事件被侦测到时 执行一段逻辑代码。

1.事件绑定

2.常见事件

查看文档,查询事件;

八:表单验证

需求:

1. 当输入框失去焦点时,验证输入内容是否符合要求
2. 当点击注册按钮时,判断所有输入框的内容是否都符合要求,如果不合符则阻止表单提交
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>欢迎注册</title>
    <link href="../css/register.css" rel="stylesheet">
</head>
<body>

<div class="form-div">
    <div class="reg-content">
        <h1>欢迎注册</h1>
        <span>已有帐号?</span> <a href="#">登录</a>
    </div>
    <form id="reg-form" action="#" method="get">

        <table>

            <tr>
                <td>用户名</td>
                <td class="inputs">
                    <input name="username" type="text" id="username">
                    <br>
                    <span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span>
                </td>

            </tr>

            <tr>
                <td>密码</td>
                <td class="inputs">
                    <input name="password" type="password" id="password">
                    <br>
                    <span id="password_err" class="err_msg" style="display: none">密码格式有误</span>
                </td>
            </tr>


            <tr>
                <td>手机号</td>
                <td class="inputs"><input name="tel" type="text" id="tel">
                    <br>
                    <span id="tel_err" class="err_msg" style="display: none">手机号格式有误</span>
                </td>
            </tr>

        </table>

        <div class="buttons">
            <input value="注 册" type="submit" id="reg_btn">
        </div>
        <br class="clear">
    </form>

</div>


<script>
    
//第一部分    
    //1. 验证用户名是否符合规则
    //1.1 获取用户名的输入框
    var usernameInput = document.getElementById("username");

    //1.2 绑定onblur事件 失去焦点
    usernameInput.onblur = checkUsername;

    function checkUsername() {
        //1.3 获取用户输入的用户名
        var username = usernameInput.value.trim();

        //1.4 判断用户名是否符合规则:长度 6~12,单词字符组成
        var reg = /^\w{6,12}$/;
        var flag = reg.test(username);

        //var flag = username.length >= 6 && username.length <= 12;
        if (flag) {
            //符合规则
            document.getElementById("username_err").style.display = 'none';
        } else {
            //不合符规则
            document.getElementById("username_err").style.display = '';
        }

        return flag;
    }


    //1. 验证密码是否符合规则
    //1.1 获取密码的输入框
    var passwordInput = document.getElementById("password");

    //1.2 绑定onblur事件 失去焦点
    passwordInput.onblur = checkPassword;

    function checkPassword() {
        //1.3 获取用户输入的密码
        var password = passwordInput.value.trim();

        //1.4 判断密码是否符合规则:长度 6~12
        var reg = /^\w{6,12}$/;
        var flag = reg.test(password);

        //var flag = password.length >= 6 && password.length <= 12;
        if (flag) {
            //符合规则
            document.getElementById("password_err").style.display = 'none';
        } else {
            //不合符规则
            document.getElementById("password_err").style.display = '';
        }

        return flag;
    }


    //1. 验证手机号是否符合规则
    //1.1 获取手机号的输入框
    var telInput = document.getElementById("tel");

    //1.2 绑定onblur事件 失去焦点
    telInput.onblur = checkTel;

    function checkTel() {
        //1.3 获取用户输入的手机号
        var tel = telInput.value.trim();

        //1.4 判断手机号是否符合规则:长度 11,数字组成,第一位是1

        //var flag = tel.length == 11;
        var reg = /^[1]\d{10}$/;
        var flag = reg.test(tel);
        if (flag) {
            //符合规则
            document.getElementById("tel_err").style.display = 'none';
        } else {
            //不合符规则
            document.getElementById("tel_err").style.display = '';
        }

        return flag;
    }

//第二部分
    //1. 获取表单对象
    var regForm = document.getElementById("reg-form");

    //2. 绑定onsubmit 事件
    regForm.onsubmit = function () {
        //挨个判断每一个表单项是否都符合要求,如果有一个不合符,则返回false

        var flag = checkUsername() && checkPassword() && checkTel();

        return flag;
    }

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

九:正则表达式

// 规则:单词字符,6~12
//1,创建正则对象,对正则表达式进行封装
var reg = /^\w{6,12}$/;
var str = "abcccc";

//2,判断 str 字符串是否符合 reg 封装的正则表达式的规则
var flag = reg.test(str);
alert(flag);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/482532.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

揭秘国产龙蜥OS操作系统:高效学习之路等你开启!

介绍&#xff1a;Anolis OS是一个完全开源、中立且开放的Linux发行版&#xff0c;专为多种计算场景设计&#xff0c;特别适合云端环境。 Anolis OS的推出旨在为广大开发者和运维人员提供一个稳定、高性能、安全、可靠且开源的操作系统服务。以下是Anolis OS的几个重要特点&…

mysql80-DBA数据库学习1

掌握能力 核心技能 核心技能 mysql部署 官网地址www.mysql.com 或者www.oracle.com https://dev.mysql.com/downloads/repo/yum/ Install the RPM you downloaded for your system, for example: yum install mysql80-community-release-{platform}-{version-number}.noarch…

window10系统~如何关闭电脑的防火墙?

电脑桌面左下角选择放大镜&#xff0c;搜索&#xff1a;防火墙2. 点击【防火墙和网络保护】 3. 把下面三个地方都关闭掉&#xff1a; 点击【域网络】&#xff0c;关闭如下按钮&#xff1a; 再返回到上层&#xff0c;如下的界面&#xff1a; 用上面相同的方法&#xff0c;依…

阿里云有免费服务器吗?有的,附送免费服务器申请流程

阿里云服务器免费试用申请链接入口&#xff1a;aliyunfuwuqi.com/go/free 阿里云个人用户和企业用户均可申请免费试用&#xff0c;最高可以免费使用3个月&#xff0c;阿里云服务器网分享阿里云服务器免费试用申请入口链接及云服务器配置&#xff1a; 阿里云免费服务器领取 阿里…

APP测试中ios和androis的区别,有哪些注意点

目录 一、运行机制不同 二、对app内存消耗处理方式不同 三、后台制度不同 四、最高权限指令不同 五、推送机制不同 六、抓取方式不同 七、灰度发版机制不同 八、审核机制不同 一、运行机制不同 IOS采用的是沙盒运行机制&#xff0c;安卓采用的是虚拟机运行机制。 1、…

[套路] 浏览器引入Vue.js场景-WangEditor富文本编辑器的使用 (永久免费)

系列文章目录 [套路] el-table 多选属性实现单选效果[套路] 基于服务内存实现的中文拼音混合查询[套路] Bypass滑块验证码 目录 系列文章目录前言一、实现1.1 场景1.2 Window对象简介1.3 引入WangEditor1.4 页面配置 前言 公司使用freemarker的老旧SpringBootWeb后台项目, 前…

RPG Maker MV 踩坑九 场景和窗口问题

RPG Maker MV 踩坑九 场景和窗口问题 启言场景窗口场景和窗口问题战斗场景 启言 在RPG Maker MV中使用的语言是JavaScript作为脚本语言&#xff0c;在HTML中的Canvas画布上进行绘制图像及交互行为。 在游戏中能够感知到的最大的容器是场景,往下就是各种用于菜单操作的窗口&…

通过nginx配置文件服务器(浏览器访问下载)

配置服务器端文件下载和展示(Nginx) nginx.conf文件中增加配置&#xff0c;然后浏览器里访问ip:port回车即可 server { listen port; server_name 服务端ip; # 指定文件下载目录的路径 location / { # 使用root指令来设置文件的根目录 # Nginx会在该目录下寻找相对于loca…

洛谷B3626 跳跃机器人

#先看题目 题目描述 地上有一排格子&#xff0c;共 n 个位置。机器猫站在第一个格子上&#xff0c;需要取第n 个格子里的东西。 机器猫当然不愿意自己跑过去&#xff0c;所以机器猫从口袋里掏出了一个机器人&#xff01;这个机器人的行动遵循下面的规则&#xff1a; 初始时…

基于SpringBoot的大学生租房系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea 系统展示 系统功能模块 系统首页界面图 用户…

有什么可以下载网页视频的浏览器插件 浏览器如何下载网页视频 网页视频怎么下载到本地 网页视频下载软件 IDM下载

在视频网站上看电影追剧&#xff0c;已经成为了大众生活中必不可少的一部分。为了保护自家视频的版权&#xff0c;很多平台都禁止用户下载会员视频。其实只要掌握了正确的方法&#xff0c;一样可以将会员视频下载到本地保存。那么有关有什么可以下载网页视频的浏览器&#xff0…

第十届蓝桥杯大赛个人赛省赛(软件类)真题- CC++ 研究生组-质数

17569 #include<stdio.h> #include<math.h> const int N 500000;//注意范围设大一点&#xff0c;还是有很多合数滴~ int f[N] {0}, p[N]; int main(){int num 1;for(int i 2; ; i){if(!f[i]){p[num] i;if(num 2020) break;for(int j i * i; j < N; j i…

Token的详解

Token的详解 文章目录 Token的详解前言:简介:使用token&#xff1a; 前言: 为什么会用到Token&#xff0c;因为cookie和session一些自身的缺点&#xff0c;限制了一些功能的实现&#xff0c;比如&#xff1a; cookie&#xff1a;优点是节省服务器空间&#xff0c;缺点不安全。…

数据结构面试常见问题之- Hashing - Hard Version

&#x1f600;前言 在解决哈希问题中的逆向情形时&#xff0c;我们面临着一种特殊挑战&#xff1a;已知散列函数和冲突解决策略的结果&#xff0c;需要推断输入元素的顺序。这种问题要求我们深入理解哈希函数的工作原理以及冲突处理的方式&#xff0c;并通过逆向思维来还原出元…

day43 动态规划part5

1049. 最后一块石头的重量 II 中等 提示 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎…

坚韧不拔,直至胜利的彼岸

当晨曦的第一缕光线透过夜幕的阴霾&#xff0c;希望与挑战并肩而来。在这个世界的每个角落&#xff0c;无数的个体都在经历着各自的斗争、失败、再斗争&#xff0c;直至最终的胜利。这是一个古老而永恒的循环&#xff0c;是成长的必经之路&#xff0c;它讲述着坚韧不拔的精神如…

【LeetCode】升级打怪之路 Day 26:回溯算法 — 集合划分问题

今日题目&#xff1a; 698. 划分为k个相等的子集 | LeetCode473. 火柴拼正方形 | LeetCode 参考文章&#xff1a; 经典回溯算法&#xff1a;集合划分问题 目录 LC 698. 划分为k个相等的子集 【classic&#xff0c;有难度】数据预处理&#xff1a;计算 target基本回溯优化 1&…

Zero-Change Object Transmission for Distributed Big Data Analytics——论文泛读

ATC 2022 Paper 问题 分布式大数据分析在很大程度上依赖于Java和Scala等高级语言的可靠性和多功能性。然而&#xff0c;这些高级语言也为数据传输制造了障碍。要在Java虚拟机&#xff08;JVM&#xff09;之间传输数据&#xff0c;发送方应将对象转换为字节数组&#xff08;序…

校验注解@Length提示Length.class 类文件具有错误的版本 55.0, 应为 52.0

你们好&#xff0c;我是金金金。 场景 我正在学习参数校验&#xff0c;启动项目时报错如下 实体类 依赖版本 报错信息 排查 看报错信息提示类文件具有错误的版本 55.0, 应为 52.0&#xff0c;猜测可能是版本的问题。 可以确实就是版本的关系了&#xff0c;8.0版本的只能在jd…

2024年基于springboot+vue的10个最新选题推荐

前言 &#x1f497;博主介绍&#xff1a;✌专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅&#x1f447;&#x1f3fb; 2024年Java精品实战案例《100套》 &#x1f345;文末获取源码联系&#x1f345; &#x1f31f…