JavaWeb_JavaScript

news2024/12/23 1:58:17

一、简介

JavaScript 是一门跨平台、面向对象的脚本语言,而Java语言也是跨平台的、面向对象的语言,只不过Java是编译语言,是需要编译成字节码文件才能运行的;JavaScript是脚本语言,不需要编译,由浏览器直接解析并执行。

JavaScript 是用来控制网页行为的,它能使网页可交互。JavaScript能改变页面内容、修改指定元素的属性值、对表单进行校验等。

JavaScript(简称:JS) 在 1995 年由 Brendan Eich 发明,并于 1997 年成为一部 ECMA 标准。ECMA 规定了一套标准 就叫ECMAScript ,所有的客户端校验语言必须遵守这个标准,当然 JavaScript 也遵守了这个标准。ECMAScript 6 (简称ES6) 是最新的 JavaScript 版本

二、JavaScript引入方式 

JavaScript 引入方式就是 HTML 和 JavaScript 的结合方式。JavaScript引入方式有两种:
内部脚本:将 JS代码定义在HTML页面中
外部脚本:将 JS代码定义在外部 JS文件中,然后引入到 HTML页面中

1.内部脚本

在 HTML 中,JavaScript 代码必须位于 <script> 与 </script> 标签之间

在 HTML 文档中可以在任意地方,放置任意数量的标签

(一般把脚本置于元素的底部,可以改善显示速度,因为浏览器在加载页面的时候会从上往下进行加载并解析)

2.外部脚本

①定义外部js文件(后缀为.js的文件)

②编写js文件内容,如:

alert("hello js");

③在html页面使用script标签并使用src属性指定js文件的URL路径,如:

<script src="../js/demo.js"></script>

三、JavaScript基础语法

1.书写语法

区分大小写

每行结尾的分号可有可无(如果上一行写多个语句时,必须加分号用来区分多个语句)

注释方法和Java相同

2.输出语句

①写入警告框

window.alert("hello js");//写入警告框

 ②写入HTML输出

document.write("hello js");//写入html页面

 ③使用 console.log() 写入浏览器控制台

console.log("hello js");//写入浏览器的控制台

3.变量

①var关键字

JavaScript 中用 var 关键字(variable 的缩写)来声明变量。格式 var 变量名 = 数据值; 。而在JavaScript 是一门弱类型语言,变量可以存放不同类型的值;如下在定义变量时赋值为数字数据,还可以将变量的值改为字符串类型的数

var test = 20;
test = "张三";

JavaScript中var关键字的特点:

作用域为全局,即var定义的变量都是全局变量

变量可以重复定义,但是后定义的变量会将之前的变量替换掉

②let关键字

let关键字所声明的变量,只在 let 关键字所在的代码块内有效,且不允许重复声明

③const关键字

const用来声明一个只读的常量,一旦声明,常量的值就不能更改

const关键字也是局部变量

4.数据类型

typeof 变量名 可以获取数据类型

原始数据类型:

number:数字

string:字符、字符串

boolean:布尔类型

null:对象为空

undefined:声明的变量未初始化时,该变量的默认值时undefined

5.运算符

大部分运算符和java相同

一元运算符:++,--
算术运算符:+,-,*,/,%
赋值运算符:=,+=,-=…
关系运算符:>,<,>=,<=,!=,==,===…
逻辑运算符:&&,||,!
三元运算符:条件表达式 ? true_value : false_value

①==和===区别

==:
        1. 判断类型是否一样,如果不一样,则进行类型转换
        2. 再去比较其值
===:js 中的全等于
        1. 判断类型是否一样,如果不一样,直接返回false
        2. 再去比较其值

②类型转换

string 转换为 number 类型:按照字符串的字面值,转为数字。如果字面值不是数字,则转为NaN

使用 parseInt() 函数进行转换,可将字符串类型转换为int类型

boolean 转换为 number 类型:true 转为1,false转为0 

其他类型转为 boolean
number 类型转换为 boolean 类型: 0 NaN 转为 false ,其他的数字转为 true
string 类型转换为 boolean 类型:空字符串转为 false ,其他的字符串转为 true
null 类型转换为 boolean 类型是 false
undefined 转换为 boolean 类型是 false

6.流程控制语句

if、switch、for、while、do-while

用法和java相同

7.函数

①定义格式

function 函数名(参数1,参数2..){
    要执行的代码
}
//参数列表中,形参不需要定义类型
var 函数名 = function (参数列表){
    要执行的代码
}

②函数调用

调用方法和java相同

四、JavaScript常用对象

1.Array

①定义格式

var 变量名 = new Array(元素列表);

var 变量名 = [元素列表];

②元素访问

// 方式一
var arr = new Array(1,2,3);
// alert(arr);
// 方式二
var arr2 = [1,2,3];
//alert(arr2);
// 访问
arr2[0] = 10;
alert(arr2)

③特点

JavaScript中数组长度可变,且数组中可以存储任意类型的数据

④属性

arr.length:获取数组长度

⑤方法

push(n1):向数组的末尾添加一个或更多元素,并返回新的长度(参数表示要添加的元素)

splice(n1,n2):删除元素(n1表示从哪个索引位置删除,n2表示删除几个元素)

2.String

定义方式:

var 变量名 = new String(s);

var 变量名 = "数组";

属性:

length:获取字符串的长度

方法:

charAt():返回在指定位置的字符

indexOf():检索字符串

trim():用来去掉字符串两端的空格

3.自定义对象

var 对象名称 = {
    属性名称1:属性值1,
    属性名称2:属性值2,
    ...,
    函数名称:function (形参列表){},
    ...
};

五、BOM

Browser Object Model 浏览器对象模型。也就是 JavaScript 将浏览器的各个组成部分封装为对象。我们要操作浏览器的各个组成部分就可以通过操作 BOM 中的对象来实现。

BOM 中包含了如下对象:
Window:浏览器窗口对象
Navigator:浏览器对象
Screen:屏幕对象
History:历史记录对象
Location:地址栏对象

 

1.Window对象

该对象不需要创建,可以直接使用window,并且window可以省略不写,例如:window.alert()可以省略为alert()

属性:

history、location

方法:

alert():显示带有一段消息和一个确认按钮的警告框

confirm():显示带有一段消息以及确认按钮和取消按钮的对话框

setInterval():按照指定的周期(以毫秒计)来调用函数或计算表达式

setTimeout():在指定的毫秒后调用函数计算表达式

setTimeout(function,毫秒值) : 在一定的时间间隔后执行一个function,只执行一次
setInterval(function,毫秒值) :在一定的时间间隔后执行一个function,循环执行

2.History对象

对象获取:直接使用history即可

函数:back()、forward()

3.Location对象

获取:location即可

属性:href:设置或返回完成的url

六、DOM

1.概述

DOM:Document Object Model 文档对象模型。也就是 JavaScript 将 HTML 文档的各个组成部分封装为对象。

HTML 文档是浏览器解析。封装的对象分为
Document:整个文档对象
Element:元素对象
Attribute:属性对象
Text:文本对象
Comment:注释对象

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

2.获取Element对象

HTML 中的 Element 对象可以通过 Document 对象获取,而 Document 对象是通过 window 对象获取。

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

七、事件监听

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

1.事件绑定

 方式一:通过 HTML标签中的事件属性进行绑定

//如下面代码,有一个按钮元素,我们是在该标签上定义 事件属性
//在事件属性中绑定函数,onclick 就是 单击事件的事件属性。
//onclick='on()' 表示该点击事件绑定了一个名为 on()的函数
<input type="button" onclick="on()">
<script>
    function on(){
        alert("我被点了");
    }
</script>

方式二:通过 DOM 元素属性绑定

//如下面代码是按钮标签,在该标签上我们并没有使用 事件属性 ,绑定事件的操作需要在 js 代码中实现
<input type="button" id="btn">
<script>
    document.getElementById("btn").onclick = function (){
        alert("我被点了");
    }
</script>

2.常见事件

事件属性名说明
onclick鼠标单击事件
onblur元素失去焦点
onfocus元素获得焦点
onload某个页面或图像完全被加载
onsubmit当表单提交时触发
onmouseover鼠标被移到某元素上
onmouseout鼠标从某元素移开

焦点:当点击输入框后,输入框就获得焦点,当点击其他空白区域时,输入框就失去了焦点

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPT-3是精神病患者吗?从心理学角度评估大型语言模型

原文链接&#xff1a;https://www.techbeat.net/article-info?id4494 作者&#xff1a;seven_ 20世纪60年代&#xff0c;麻省理工学院人工智能实验室的Joseph Weizenbaum编写了第一个自然语言处理&#xff08;NLP&#xff09;聊天机器人ELIZA[1]&#xff0c;ELIZA通过使用模式…

linux Redis 集群搭建

在单例模式下继续执行&#xff0c;新增文件夹将之前解压后的文件复制到新增的文件夹中修改配置文件&#xff0c;并放入bin中bind 10.88.99.251&#xff08;ip设置&#xff09;protected-mode yes&#xff08;默认yes&#xff0c;开启保护模式&#xff0c;限制为本地访问&#x…

ASEMI整流桥GBU808在选型的过程中需要注意几点

编辑-Z 型号&#xff1a;GBU808 最大重复峰值反向电压&#xff08;VRRM&#xff09;&#xff1a;800V 最大RMS电桥输入电压&#xff08;VRMS&#xff09;&#xff1a;560V 最大直流阻断电压&#xff08;VDC&#xff09;&#xff1a;800V 最大平均正向整流输出电流&#xf…

为2023年做好 IT 安全防御准备

随着网络安全威胁形势的不断演变&#xff0c;安全运营中心 (SOC) 团队在新年伊始花时间审查他们的战略和关键保护措施。 SOC 团队明白&#xff0c;有效的安全性永远不会是一劳永逸的项目。现有的工具和服务需要不断监控和更新&#xff0c;以确保它们能够抵御当前和新出现的威…

测试人员提高业务掌握度的方案

测试人员除了掌握测试相关技术&#xff0c;比如测试流程、测试用例编写思路、自动化脚本的编写、维护之外&#xff0c;还需要对自己所测试的具体业务进行学习和掌握。 只有这样&#xff0c;才能去涉及灰盒、白盒测试&#xff0c;在测试执行过程中&#xff0c;提高自己分析、定位…

17《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》中文分享

​结合亲和力具有自由能的分子基础理论&#xff1a;在本章中&#xff0c;我们使用K来衡量结合亲和力。我们可以通过结合曲线(binding curves,)来像这样定义一个结合作用力。这样的曲线能给出配体结合的数量与溶液中配体数量的关系。而结合亲和力K也存在关于分子结构以及能量基础…

zabbix6.0配置邮件告警

1、 配置发送邮件服务器&#xff08;管理媒介Email&#xff09; 2、 创建用户用来接收邮件告警&#xff08;管理用户创建用户&#xff09; 用户 报警媒介 权限 3、 设置触发器报警后的动作&#xff08;配置动作触发器动作创建动作&#xff09; 邮件报警是基…

【C++初阶】六、STL---string模拟实现

目录 一、模拟实现接口总览 二、string模拟实现 2.1 构造函数 2.2 析构函数 2.3 拷贝构造函数 2.3.1 传统写法 2.3.2 现代写法 2.4 赋值运算符重载 2.4.1 传统写法 2.4.2 现代写法 2.5 iterator 2.5.1 begin 2.6 Capacity 2.6.1 size 2.6.2 capacity 2.6.2 emp…

Maven的下载安装配置IDEA详细过程

1. 去官网下载好并且放在同一文件夹下面 下载maven安装包&#xff0c;解压即可使用 &#xff08;下载路径&#xff09;http://maven.apache.org/download.cgi 2. maven配置环境变量 MAVEN_HOME D:\IT\Java\apache-maven-3.8.4&#xff1a;这个写你自己放的目录下 进Path新增 %…

推荐系统之召回集读取服务

5.4 召回集读取服务 学习目标 目标 无应用 无 5.4.1 召回集读取服务 添加一个server的目录 会添加推荐中心&#xff0c;召回读取服务&#xff0c;模型排序服务&#xff0c;缓存服务这里先添加一个召回集的结果读取服务recall_service.pyutils.py中装有自己封装的hbase数据库读…

【GD32F427开发板试用】GD32的ISP进行程序烧录

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;羁傲不驯ぃ 什么是ISP? ISP是In-System Program的缩写&#xff0c;即在系统编程。通常我们开发使用仿真器来下载和调试程序&#xff0c;当固…

linux下安装elasticsearch

一&#xff1a;安装JDK1&#xff1a;java安装地址最新版&#xff1a;https://www.oracle.com/java/technologies/javase-downloads.html历史版&#xff1a;https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html2&#xff1a;安装java(1)&#xff1a;安…

vue使用echarts画可视化大屏

画出来的页面效果如下&#xff1a; 一、布局 整体使用element-ui的layout布局&#xff0c;即el-rowel-col&#xff0c;便于自适应 二、配置跨域 首先创建个vue.config.js的文件 module.exports {lintOnSave: false,devServer: {proxy: { //配置跨域/: {target: , //填写…

Python——matplotlib绘图可视化知识点整理

无论你工作在什么项目上&#xff0c;IPython都是值得推荐的。利用ipython --pylab&#xff0c;可以进入PyLab模式&#xff0c;已经导入了matplotlib库与相关软件包&#xff08;例如Numpy和Scipy)&#xff0c;额可以直接使用相关库的功能。 本文作为学习过程中对matplotlib一些…

Oracle Blogs上的Flashback文章

Oracle Database und Temporal Validity Temporal Validity和Flashback的区别&#xff1f;两者通常配合使用。 延伸阅读&#xff1a;Oracle 数据库和时间有效性 时间有效性也称为 Flashback Time Travel。 显示不可见的列&#xff1a; set colinvisible on desc <table_…

PyQt5开发环境搭建 1.3 Python语法练习

第一组练习1阅读理解。输入红色框框中命令。说出文中大致意思。&#xff08;限30个字&#xff09;解&#xff1a;点击运行之后会跳到一个网站https://xkcd.com/353/练习2建立如下py文件并运行&#xff0c;贴出在Eric6下运行输出结果&#xff08;注意文件名中的bkjtest用自己的姓…

NSSCTF Round#7部分wp

Web ec_RCE 源码: <!-- A EZ RCE IN REALWORLD _ FROM CHINA.TW --> <!-- By 探姬 --> <?PHPif(!isset($_POST["action"]) && !isset($_POST["data"]))show_source(__FILE__);putenv(LANGzh_TW.utf8); $action $_POST["a…

layui遇到的一些问题

目录一、layui nav 菜单栏默认收缩二、layui 数据表格 单元格 颜色设置三、layui表格没有数据的时候&#xff0c;表头没有横向滚动条四、layui layer.open 弹窗全屏显示五、layui表格通过点击tr改变这一行的颜色六、 layer.open弹框弹出后父页面滚动问题七、LayUI下拉框中取值和…

Cuba勒索软件深度分析及防护建议

0 1. Cuba勒索软件的部署方式 Cuba勒索软件家族于2019年12月首次浮出水面。此后&#xff0c;该勒索软件家族背后的攻击者改变了策略和工具&#xff0c;成为2022年成为更普遍的威胁。该勒索软件历来通过Hancitor分发&#xff0c;通常通过恶意附件传递。 Hancitor也被称为Chani…

C++001-对比编程语言C++和python

文章目录C001-对比编程语言C和python编程语言发展史计算机 ENIAC机器语言&#xff1a;汇编语言&#xff1a;高级语言&#xff1a;机器汇编高级语言对比C语言与汇编不同高级语言的应用场景C和python语法对比Print Hello WorldPrint Hello 10 timesCreate a procedureCheck if li…