JavaScript的学习

HTML的学习-CSDN博客

从html的学习中 其实我已经用到了 JavaScript的脚本 (GPT)

例如

echo '<script>alert("账号密码错误"); window.location="index.html";</script>';

弹窗 然后定位到 index.html

这里能够让我们更加快速执行一些操作

JS 用法

首先 JS代码 需要通过 <script></script>包裹

其次 可以写入在 head 和 body中

最简单的JS就是类似XSS的弹窗

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript学习</title>
</head>
<body>
    <script>alert("这是一个简单的弹窗");</script>
    
</body>
</html>

JS 写html信息

document.write("<h1>这是通过JS document输出的语句</h1>");

我们可以发现 通过document 可以加上html的标签 然后输出内容

然后我们可以通过id的指定 实现javascript的调用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function check(){
            var check123 = document.getElementById('check');
            if(check123.innerHTML === '这是一个js脚本'){
            check123.innerHTML='6666';
            }else{
            check123.innerHTML='这是一个js脚本';
        }
    }
    </script>
</head>
<body>
    <p id="check">这是一个js脚本</p>
    <button type="button" onclick="check()">点我一下咯</button>
</body>
</html>

发现 这个就很简单的写法 通过 getID 获取到目标地点 然后inner 替换成666

在下面的button时触发

这就是一个最简单的javascript脚本

外部引用的话就是下面这个例子

 这样就实现了javascrip的运行

在浏览器中执行javascript

这里要学习在浏览器中执行

我们看看我们定义的是check函数

所以我们可以通过开发者工具打开控制台

执行完后可以发现 他已经在页面中进行了跳转

在这里可以实现多行执行

⭐JS的输出

存在这些输出格式

使用 window.alert() 弹出警告框。
使用 document.write() 方法将内容写到 HTML 文档中。
使用 innerHTML 写入到 HTML 元素。
使用 console.log() 写入到浏览器的控制台。

一个一个实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<script>
    window.alert("WARNING!!!");
</script>
</body>
</html>

 下面可以写入一个时间在html中

写入参数 需要文档加载完毕后操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<script>
    document.write(Date())
</script>
</body>
</html>

 下面是对元素的控制

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p id="check">我的第一个段落。</p>

    <button type='button' onclick="myFunction()">点我</button>

    <script>
        function myFunction() {
            document.getElementById('check').innerHTML = Date();
        }
    </script>
</body>
</html>

JS的语法

首先就是定义参数

var a,b

a= 4
b = 'four'

JS的注释是 //

在 // 后面的JS 不会执行

JavaScript 语法 | 菜鸟教程

var length = 16;                                  // Number 通过数字字面量赋值 
var points = x * 10;                              // Number 通过表达式字面量赋值
var lastName = "Johnson";                         // String 通过字符串字面量赋值
var cars = ["Saab", "Volvo", "BMW"];              // Array  通过数组字面量赋值
var person = {firstName:"John", lastName:"Doe"};  // Object 通过对象字面量赋值

JavaScript 对大小写是敏感的。

break 	用于跳出循环。
catch 	语句块,在 try 语句块执行出错时执行 catch 语句块。
continue 	跳过循环中的一个迭代。
do ... while 	执行一个语句块,在条件语句为 true 时继续执行该语句块。
for 	在条件语句为 true 时,可以将代码块执行指定的次数。
for ... in 	用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
function 	定义一个函数
if ... else 	用于基于不同的条件来执行不同的动作。
return 	退出函数
switch 	用于基于不同的条件来执行不同的动作。
throw 	抛出(生成)错误 。
try 	实现错误处理,与 catch 一同使用。
var 	声明一个变量。
while 	当条件语句为 true 时,执行语句块。

这是JS函数的介绍

多行注释 /**/

对于变量的命名 这里也需要注意


变量必须以字母开头
变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
变量名称对大小写敏感(y 和 Y 是不同的变量)

其次注意一下数组的创建

var cars=new Array();
cars[0]="Saab";
cars[1]="Volvo";
cars[2]="BMW";

或者 (condensed array):
var cars=new Array("Saab","Volvo","BMW");

对象的创建

var person={
firstname : "John",
lastname  : "Doe",
id        :  5566
};

对象属性有两种寻址方式:
实例
name=person.lastname;
name=person["lastname"]; 

 这里注意对象的寻址即可

⭐⭐JS的对象

这个就比较重要了

这里直接引用菜鸟教程的例子

属性就是汽车的组成

方法就是使用汽车的方式

对象就是一个大的汽车

在JS中任何事务都可以是一个对象

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

这里 我们可以通过

person.firstName 获取到 John

其他同理

或者可以使用

person[firstName] 获取到 John

下面是函数作为方法存储在对象内

var person = {
    firstName: "John",
    lastName : "Doe",
    id : 5566,
    fullName : function() 
	{
       return this.firstName + " " + this.lastName;
    }
};

我们发现 fullName 是一个函数

这里就是方法

我们可以通过

person.fullName() 调用



document.getElementById("demo1").innerHTML = "不加括号输出函数表达式:"  + person.fullName;
document.getElementById("demo2").innerHTML = "加括号输出函数执行结果:"  +  person.fullName();

两个调用方式 不一样

输出内容是

不加括号输出函数表达式:function() { return this.firstName + " " + this.lastName; }

加括号输出函数执行结果:John Doe

这些就是JS最基础的对象了

我写的也很基础

JS函数

最简单的调用函数方式

function test(){
    //代码段
}

如果是带参数的函数

function test(a,b){
    alert(a+b);
}

这样就可以执行带参数的内容

然后就是返回值

使用return即可

function test(a,b){
    retrun a+b;
}

然后就是全局和局部变量

这里还有一个 可配置全局和不可配置全局

var var1 = 1; // 不可配置全局属性
var2 = 2; // 没有使用 var 声明,可配置全局属性

console.log(this.var1); // 1
console.log(window.var1); // 1
console.log(window.var2); // 2

delete var1; // false 无法删除
console.log(var1); //1

delete var2; 
console.log(delete var2); // true
console.log(var2); // 已经删除 报错变量未定义

JS的作用域

其实就是全局变量这些

myFunction();
document.getElementById("demo").innerHTML = "carName 的类型是:" +  typeof carName;
function myFunction() 
{
    var carName = "Volvo";
}

这里我们发现 我们在局部变量 定义前就已经通过innerHTML 输出 这里是不可以的

输出内容是carName 的类型是:undefined

但是这里注意

myFunction();
document.getElementById("demo").innerHTML = "carName 的类型是:" +  typeof carName;
function myFunction() 
{
    carName = "Volvo";
}

这里是可以的 有什么区别呢 就是 carName前是否存在var

如果没有var  就默认为全局变量

GPT的回答

当使用 var 关键字声明变量时,该变量会被限定在当前的函数作用域或全局作用域中。
但是,如果在声明变量时没有使用 var、let 或 const,JavaScript 引擎会将其视为全局变量
并将其添加到全局对象(在浏览器环境下是 window 对象)的属性中

⭐JS的事件

这里我感觉是目前用户遇到js最多的地方了

通过html的事件 执行js指令

HTML 页面完成加载
HTML input 字段改变时
HTML 按钮被点击
<button onclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button>

这里是通过点击 修改 id=demo的内容


<button onclick="this.innerHTML=Date()">现在的时间是?</button>

而通过 this 是修改当前 button的指令

下面是可以操作的事件

onchange 	HTML 元素改变
onclick 	用户点击 HTML 元素
onmouseover 	鼠标指针移动到指定的元素上时发生
onmouseout 	用户从一个 HTML 元素上移开鼠标时发生
onkeydown 	用户按下键盘按键
onload 	浏览器已完成页面的加载

就是 上面的内容执行的时候 就会执行js

JS字符串

我们可以通过类似python的format的方式 在字符串中加入变量

const name='hel'

const year='17'

const message= `My name is ${name} and I'm ${year} years old.`;

我们发现是使用 ${}来进行操作

JS条件运算符

其他都是一样的

这里知识介绍一下 条件运算符

name=(age<18)?"Vam":"Same"

这里通过比对age是否小于18来输出

如果小于 就输出Vam  如果大于 就输出 Same

JS IF ELSE  For

<script>
function myFunction(){
	var x="";
	var time=new Date().getHours();
	if (time<20){
		x="Good day";
    }
	document.getElementById("demo").innerHTML=x;
}
</script>

通过javascript 获取到时间(精确到小时) 然后通过document输出

这里介绍一下for循环

其实和c差不多

for(var i-0;i<cars.length;i++){

    decoument.write('cars[i]')

}
for - 循环代码块一定的次数
for/in - 循环遍历对象的属性
while - 当指定的条件为 true 时循环指定的代码块
do/while - 同样当指定的条件为 true 时循环指定的代码块
break 语句用于跳出循环。

continue 用于跳过循环中的一个迭代。

这些在其他代码中也都学过了

基础内容差不多就这些了,这个文章只是个人不做开发了解javascrip

所以东西是很简单的

照样

我们来编写一个js文件完善之前html的页面

1.js

function check() {
    var name = document.getElementById("name");
    var passwd = document.getElementById("passwd");
    var oError = document.getElementById("error");
    var isError = true;

    if (name.value.trim() === '') {
        window.alert("账号不能为空");
        isError = false
        return
    }else if (passwd.value.trim() === '') {
        window.alert("密码不能为空");
        isError = false
        return
    }else if (name.value.length > 20 || name.value.length < 3) {
        oError.innerHTML = "账号长度不对";
        isError = false;
        return
    } else {
        // 向后端发送验证请求
        // 假设使用AJAX进行异步请求
        var xhr = new XMLHttpRequest();
        xhr.open('POST', '/test-web/dir.php', true); 
        xhr.setRequestHeader('Content-Type', 'application/json');

        xhr.onreadystatechange = function() {
            if (xhr.readyState === XMLHttpRequest.DONE) {
                if (xhr.status === 200) {
                    var response = JSON.parse(xhr.responseText);
                    if (response.success) {
                        window.alert("登录成功");
                    } else {
                        oError.innerHTML = response.errorMessage;
                    }
                } else {
                    window.alert("登录请求失败");
                }
            }
        };

        var data = JSON.stringify({
            username: name.value.trim(),
            password: passwd.value.trim()
        });

        xhr.send(data);
    }
    setTimeout(function() {
        error.innerHTML = "";
    }, 2000);
}

index.html

<<!DOCTYPE html>
<html lang="en">
<!---flag{fuc3-yo3}-->
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- <script type="text/javascript" src="js/1.js"></script> -->
    <title>学习测试一下网站解法</title>
</head>
<body>
    <h1> 我需要学会html语言基本 </h1>
    <hr>
    <h2> 基础的东西我也要会</h2>
    <p>  段落和标题的区别
        就是这个 其实我就是正文 </p>
        <hr>
    <p> 不同段落需要 重新获取p标签</p>
    <a href="帅照.jpg" download>下载帅照</a>
    <p>这是一个段落标签<br>但是我使用br分段</p>


<p> 这里介绍一下表格</p>

 <table border="12">
    <thead>
        <tr>
            <th> id</th>
            <th> name</th>
            <th> passwd</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td> 1</td>
            <td> admin</td>
            <td> admin123</td>
        </tr>

    </tbody>
 </table>       
 <p> 这里介绍一下列表</p>
 <ul>
    <li>1111111:</li>
    <li>2222222:</li>
 </ul>
 <form action="/test-web/dir.php" method="post"> 
    <label for="name">用户名</label>
    <input type="text" name="name" id="name">
    <br>
    <label for="passwd">密码:</label>
    <input type="password" name="passwd" id="passwd">
    <br>
    <button type="submit"  onclick="check()">登入</button>
    <p id="error"><br></p>
    <a href="http://127.0.0.1:3000/test-web/zhuce.php">注册</a>
</form>
 
</body>
</html>

这里是修改后的 后面的js链接后端是通过gpt生成的

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

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

相关文章

C++数据结构:图

目录 一. 图的基本概念 二. 图的存储结构 2.1 邻接矩阵 2.2 邻接表 三. 图的遍历 3.1 广度优先遍历 3.2 深度优先遍历 四. 最小生成树 4.1 最小生成树获取策略 4.2 Kruskal算法 4.3 Prim算法 五. 最短路径问题 5.1 Dijkstra算法 5.2 Bellman-Ford算法 5.3 Floyd-…

二十章总结

线程简介 Windows操作系统是多任务操作系统&#xff0c;它以进程为单位。一个进程是一个包含有自身地址的程序&#xff0c;每个独立执行的程序都称为进程。也就是说每个正在执行的程序都是一个进程。系统可以分配给每一个进程有一段有限的使用CPU的时间&#xff08;也可以称为C…

使用NVM管理多个Nodejs版同时本支持vue2、vue3

1.安装nvm,下载地址&#xff1a; https://github.com/coreybutler/nvm-windows/releases/tag/1.1.12 2.nvm常用命令 Usage:nvm arch : Show if node is running in 32 or 64 bit mode.nvm current : Display active version.nvm debug …

python基础练习题库实验6

文章目录 题目1代码实验结果题目2代码实验结果题目3代码实验结果题目4代码实验结果题目总结题目1 根据以下规范编写一个函数: 函数名称:triple输入参数:1个输入参数数据类型字符串返回值:函数返回1个字符串值。该字符串由每个字符重复3次的句子构成。例如,如果句子是Uni,…

vue中:计算属性computed

1. 在computed中定义计算属性方法根据已有的数据进行计算返回一个要显示的新数据 2. 在页面中使用{{计算属性名}}来显示返回的数据 3. computed: 内部有缓存, 多处读取只计算一次 4. 计算属性默认相当于只有getter来根据已有数据计算返回一个新数据值, 也可以指定setter来监…

对象的内部结构

在HotSpot 虚拟机里&#xff0c;对象在堆内存中的存储布局可以划分为三个部分&#xff1a;对象头&#xff08; Header &#xff09;、实例数据&#xff08;Instance Data &#xff09;和对齐填充&#xff08; Padding &#xff09;。 对象头 Mark Word&#xff08;标记字段&a…

初识《树》

目录 前言&#xff1a; 树的概念及结构&#xff1a; 1.概念 2.结构 3.树的相关概念 4.树的表示 5.树的实际应用 二叉树的概念及结构&#xff1a; 1.概念 2.特殊二叉树 ​编辑 3.二叉树的性质 对于满二叉树 对于完全二叉树&#xff1a; 4.二叉树的存储结构 堆 …

【安卓】安卓xTS之Media模块 学习笔记(1) xTS介绍

1.背景 Media的安卓xTS相关测试和功能修复已经进行了一段时间了。 在此整理总结下xTS工作总结&#xff0c;留待后续查阅整理。 2. xTS介绍 - 什么是xTS 谷歌的xTS是对谷歌发布的CTS/GTS/VTS/STS/BTS/CTS-on-GSI等一系列测试的统称。 因为安卓系统比较庞大&#xff0c;模块多…

Python语言学习笔记之二(基础语法)

本课程对于有其它语言基础的开发人员可以参考和学习&#xff0c;同时也是记录下来&#xff0c;为个人学习使用&#xff0c;文档中有此不当之处&#xff0c;请谅解。 Python几种字符串的表示&#xff1a; 在Python中&#xff0c;字符串是一种基本的数据类型&#xff0c;可以使…

搭建你自己的网盘-个人云存储的终极解决方案-nextcloud (一)

在当今数字化时代&#xff0c;我们越来越多地依赖云存储来保存和共享我们的个人和工作文件。而自己搭建网盘不仅可以提供更大的存储空间和更高的隐私保护&#xff0c;还可以让我们完全掌控我们的数据。 在之前我分享过一个文件共享站-Pingvin Share 。 但是今天我将带来一个文件…

深入剖析预约上门服务系统源码:构建高效服务的代码之旅

在本文中&#xff0c;我们将深入研究预约上门服务系统的源码&#xff0c;透过代码的层层剖析&#xff0c;揭示系统背后的技术奥秘。我们将关注系统的核心功能&#xff0c;并通过代码示例演示其实现过程&#xff0c;为读者提供一个深度技术解读的体验。 1. 技术栈选择&#xf…

JSP forEach标签varStatus使用讲解(了解即可 基本用不到)

上文 JSP迭代标签之 forEach循环标签 基本使用讲解 我们讲了一下forEach标签 大多数时候会用的语法 但是varStatus 没有讲到 因为我觉得这个东西 做个了解就好了 如果你不感兴趣都可以不看 因为感觉开发中基本是用不到的 但是 官方有提供 我还是说一下 当前遍历的基本信息 包括…

高校学生宿舍公寓报修维修生活管理系统 微信小程序b2529

本课题要求实现一套基于微信小程序宿舍生活管理系统&#xff0c;系统主要包括&#xff08;管理员&#xff0c;学生、维修员和卫检员&#xff09;四个模块等功能。 使用基于微信小程序宿舍生活管理系统相对传统宿舍生活管理系统信息管理方式具备很多优点&#xff1a;首先可以大幅…

webpack 使用打包报错 ERROR in node_modules\@types\node\ts4.8\assert.d.ts

报错如下&#xff1a; 解决方式&#xff0c;先查看自己的 node 版本 node -v然后再安装 types/node 对应版本&#xff0c;比如我的如下 npm i types/node14.10.0 -D然后再次打包&#xff0c;就没有报错了

【Python】plt库详解和示例

plt 是 Python 中 Matplotlib 库的一个常用别名&#xff0c;它表示 pyplot&#xff0c;这是一个用于创建图形和图形的可视化表示的工具。下面是一些 plt 函数的详解和示例&#xff0c;以帮助大家理解和使用。 目录 plt.subplots&#xff08;&#xff09;plt.savefig&#xff0…

SSM框架(三):SpringMVC

文章目录 一、SpringMVC简介1.1 概述1.2 入门案例1.3 bean的加载控制1.4 PostMan插件 二、请求【页面向后台发送数据】2.1 请求映射路径2.2 请求方式2.3 解决中文乱码2.4 请求参数2.4.1 五种常见参数种类2.4.2 JSON数据2.4.3 RequestParam与RequestBody的区别2.4.4 日期类型 三…

P9242 [蓝桥杯 2023 省 B] 接龙数列(dp+最长接龙序列+分类)

1. 计算0~9为结尾的最长子串长度 2. 对于每个数字&#xff0c;比较其开头可连接子串长度1 与 原来以其末位为末尾的子串长度 3. 更新以其末位为末尾的子串长度 #include<iostream> #include<string.h>using namespace std;// 相当于记录…

python爬虫进阶教程之如何正确的使用cookie

文章目录 前言一、获取cookie二、程序实现三、动态获取cookie四、其他关于Python爬虫技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资料六、Pytho…

linux安装终端连接工具Tabby

参考&#xff1a;https://zhuanlan.zhihu.com/p/645787655

Day45:300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

文章目录 300.最长递增子序列思路代码实现 674. 最长连续递增序列思路代码实现 718. 最长重复子数组思路代码实现 300.最长递增子序列 题目链接 思路 单个字符都是一个长为1的子序列&#xff0c;直接初始化dp为1。先固定一个元素位置i&#xff0c;判断0-i范围内到i的最长子序…