JavaScript简介引入方式(JavaScript基础语法、JavaScript对象、BOM、DOM、事件监听)

news2024/11/27 3:46:27

在这里插入图片描述

🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaEE
操作系统
Redis

石可破也,而不可夺坚;丹可磨也,而不可夺赤。


JavaScript简介&引入方式

  • 简介:什么是JavaScript
  • 一、JavaScript的引入方式
  • 二、JavaScript基础语法
    • 2.1 书写语法与输出语句
    • 2.2 变量与数据类型
    • 2.3 运算符
      • 2.3.1 == 与 === 的区别
      • 2.3.2 类型转换
    • 2.4 流程控制语句与函数
  • 三、JavaScript对象
    • 3.1Array
    • 3.2 String
    • 3.3 自定义对象
  • 四、BOM
    • 4.1 Window:浏览器窗口对象
    • 4.4 History:历史记录对象
    • 4.5 Location:地址栏对象
  • 五、DOM
    • 5.1 获取Element对象
    • 5.2 常见HTML Element对象的使用
  • 六、事件监听
    • 6.1 事件绑定
    • 6.2 常见事件

简介:什么是JavaScript

  • JavaScript是一门跨平台、面向对象的脚本语言,来控制网页行为的,它能使网页可交互
  • W3C标准:网页主要由三部分组成
    • 结构:HTML
    • 表现:CSS
    • 行为:JavaScript
  • JavaScript和Java是完全不同的语言,不论是概念还是设计,但是语法基础类似
  • JavaScript(简称JS)在1995年由Brendan Eich发明,并于1997年成为一部ECMA标准
  • ECMAScript 6(ES6)是最新的JavaScript版本(发布于2015年)

一、JavaScript的引入方式

  • 1.内部脚本:将JS代码定义在HTML页面中
    • 在HTML中,JavaScript代码必须位于<script>与</script>标签之间
<script>
	alert("hello JavaScript!");
</script>
  • 注意:
  • 在HTML文档中可以在任意地方,放置任意数量的<script>
  • 一般把脚本置于<body>元素的底部,可改善显示速度,因为脚本执行会拖慢显示
  • 2.外部脚本:将JS代码定义在外部JS文件中,然后引入到HTML页面中
  • 外部文件:test.jsalert("hello JavaScript!");
  • 引入外部js文件:<script src = "../js/test.js"></script>
  • 注意:
    • 外部脚本不能包含<script>标签
    • <script>标签不能自闭合

二、JavaScript基础语法

2.1 书写语法与输出语句

  • 书写语法:
    • 区分大小写:与Java一样,变量名、函数名以及其他一切东西都是区分大小写的
    • 每行结尾的分号可有可无
    • 注释:
      • 单行注释://注释内容
      • 多行注释:/* 注释内容 */
    • 大括号表示代码块
  • 输出语句:
    • 使用window.alert()写入警告框
    • 使用document.write()写入HTML输出
    • 使用console.log()写入浏览器控制台

2.2 变量与数据类型

  • 变量:
    • JavaScript中用var关键字(variable的缩写)来声明变量
    • JavaScript是一门弱类型语言,变量可以存放不同类型的值
    • 变量名需要遵循如下规则:
      • 组成字符可以是任何字母、数字】下划线(_)或美元符($)
      • 数字不能开头
      • 建议使用驼峰命名法
  • ECMScript6新增了let关键字来定义变量,它的用法类似于var,但是所声明的变量只在let关键字所在的代码块内有效,且不允许重复声明
  • ECMScript6新增了const关键字,用来声明一个只读的常量,一旦声明。常量的值就不能改变

  • 数据类型:
  • JavaScript中分为:原始类型和引用类型
  • 5种原始类型:
    • number:数字(整数、小数、NaN(Not a Number))
    • string:字符、字符串、单双引皆可
    • boolean:布尔(true、false)
    • null对象为空
    • undefined:当声明的变量未初始化时,该变量的默认值是undefined
  • 使用typeof运算符可以获取数据类型

2.3 运算符

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

2.3.1 == 与 === 的区别

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

2.3.2 类型转换

  • 其它类型转为number:
    • 1.string转为number:按照字符串的字面值,转为数字.如果字面值不是数字,则转为NaN,一般使用parseInt()进行转换。
    • 2.boolean转为number:true转为1,false转为0。
  • 其它类型转为boolean:
  • 1.number:0和NaN转为false,其他的数字转为true
  • 2.string:空字符串转为false,其他的字符串转为true
  • 3.null:false
  • 4.undefined:false

2.4 流程控制语句与函数

  • 流程控制语句
  • if:
var count 3;
if(count == 3){
	alert(count);
}
  • 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;
	}
}
  • for:
var sum = 0;
for(1et i = 1;i <= 100;1++){
	sum += i;
}
alert(sum);
  • while:
var sum = 0;
var i = 1;
while (i <= 100){
	sum += i;
	i++;
}
alert(sum);
  • do.…while:
var sum = 0;
var i = 1;
do {
	sum += 1:
	i++;
}
while (i <= 100);
alert(sum);
  • 函数(方法)
  • 方式一:
  • 是被设计为执行特定任务的代码块
  • 定义:JavaScript函数通过function关键词进行定义,语法为:
function functionName(参数1,参数2...) {
	//要执行的代码
}
  • 注意:
  • 形式参数不需要类型。因为JavaScript是弱类型语言
  • 返回值也不需要定义类型,可以在函数内部直接使用returni返回即可
function add(a,b) {
	return a b;
}
  • 调用:函数名称(实际参数列表);
let result add(1,2);
  • 方式二:
var functionName = function(参敛列表){
	//要执行的代码
}
var add = function (a,b){
	return a + b;
}
  • 调用:JS中,函数调用可以传递任意个数参数
let result add(1,2,3);

三、JavaScript对象

3.1Array

  • JavaScript Array对象用于定义数组
    • 定义:
var 变量名 = new Array(元素列表);//方式一
var arr new Array(1,2,3);
var 变量名 = [元素列表]//方式二
var arr = [1,2,3];
    • 访问:
arr[索引] = 值;
arr[0]= 1;
  • 注意:JS数组类似Java集合,长度,类型都可变(变长变类型)
    • 属性:
      • 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:删除
var arr6 = [1,2,3];
arr6.splice(01);//表示从0下标开始删,删除1个元素
alert(arr6);

在这里插入图片描述


在这里插入图片描述


3.2 String

  • 定义:
var 变量名 = new String(s);//方式一
var str = new String("hello");
var 变量名 = s;//方式二
var str = "hello";

在这里插入图片描述


3.3 自定义对象

  • 格式:
var 对象名称 = {
	属性名称1:属性值1
	属性名称2:属性值2...
	函数名称:function(形参列表){}
	...
	};
var person = {
	name:"zhangsan",
	age:23,
	eat:function {
		alert("干饭~")}
};

四、BOM

  • Browser Object Model浏览器对象模型
  • JavaScript将浏览器的各个组成部分封装为对象
  • 组成:

4.1 Window:浏览器窗口对象

      • 获取:直接使用window,其中window.可以省略
window.alert("abc");
      • 属性:获取其他BOM对象

在这里插入图片描述


在这里插入图片描述


  • 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");
},3000);

4.4 History:历史记录对象

  • History:历史记录
  • 获取:使用window.history获取,其中window可省略
window.history.方法();
history.方法();
  • 方法:
    在这里插入图片描述

4.5 Location:地址栏对象

  • History:历史记录
  • 获取:使用window.location获取,其中window可省略
window.location.方法();
location.方法();
  • 属性:
    在这里插入图片描述

五、DOM

  • Document Object Model文档对象模型
  • 将标记语言的各个组成部分封装为对象
    • Document:整个文档对象
    • Element:元素对象
    • Attribute:属性对象
    • Text:文本对象
    • Comment:注释对象
      在这里插入图片描述

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

  • DOM是W3C(万维网联盟)的标准
  • DOM定义了访问HTML和XML文档的标准:
  • W3CDOM标准被分为3个不同的部分:
    • 1.核心DOM:针对任何结构化文档的标准模型
      • Document:整个文档对象
      • Element:元素对象
      • Attribute:属性对象
      • Text:文本对象
      • Comment:注释对象
    • 2.XML DOM:针对XML文档的标准模型
    • 3.HTML DOM:针对HTML文档的标准模型
      • Image:<img>
      • Button <input type=button'>

5.1 获取Element对象

  • Element:元素对象
  • 获取:使用Document对象的方法来获取
    • 1.getElementByld:根据id属性值获取,返回一个Element对象
var img = document.getElementById("Light");
alert(img);
    • 2.getElementsByTagName:根据标签名称获取,返回Element对象数组
var divs = document.getElementsByTagName("div");
alert(divs.length);
    • 3.getElementsByName:根据name属性值获取,返回Element对象数组
var hobbys = document.getELementsByName("hobby");
for (let i = 0;i < hobbys.length;i++){
	alert(hobbys[i]);
}
    • 4.getElementsByClassName:根据class属性值获取,返回Element对象数组
var clss = document.getElementsByelassName("cls");
for (let i = 0;i < clss.length;i++){
	alert(clss[i]);
}

5.2 常见HTML Element对象的使用

  • <img>标签的src属性:
var img = document.getElementById("Light");
img.src = "../imgs/on.gif"
  • style:设置元素css样式
var divs = document.getElementsByTagName("div");
for (let i = 0;i < divs.length;i++){
	divs[i].style.color = 'red';
}
  • innerHTML:设置元素内容
var divs = document.getElementsByTagName("div");
for (let i = 0;i < divs.length;i++){
	divs[i].innerHTML = "hello!";
}
  • checked:选中对象
var hobbys = document.getELementsByName("hobby");
for (let i = 0;i < hobbys.length;i++){
	hobbys[i].checked = true;
}

六、事件监听

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

6.1 事件绑定

  • 事件绑定有两种方式:
    • 方式一:通过HTML标签中的事件属性进行绑定
<input type="button"onclick='on()'>
function on(){
	alert("我被点了")}
    • 方式二:通过DOM元素属性绑定(推荐)
<input type="button"id="btn">
document.getElementByld("btn").onclick function(){
	alert("我被点了");
}

6.2 常见事件

  • 参考HTML教程:https://www.w3school.com.cn/jsref/dom_obj_event.asp

在这里插入图片描述


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

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

相关文章

手把手教你实现:将后端SpringBoot项目部署到华为云服务器上

前言 前提&#xff1a;有一个后端项目&#xff0c;项目能够运行在本地&#xff0c;可以通过本地访问&#xff08;localhost&#xff09; 如果没有可以看这篇&#xff1a;一个基于SpringBoot的后端项目 注册华为云账号 华为云官网 购买云服务器 产品 -> 华为云耀云服务器…

数据结构--插入排序

目录 插入排序 算法实现 算法效率分析 插入排序的优化-折半插入排序 最终的结果&#xff1a;&#xff08;方式&#xff09; 优化-折半查找的代码实现 ​回顾 插入排序 算法实现 算法效率分析 空间复杂度和问题规模无关 插入排序的优化-折半插入排序 之前的元素有序&am…

【2023集创赛】加速科技杯三等奖作品:私密性高精度刷手身份认证系统

本文为2023年第七届全国大学生集成电路创新创业大赛&#xff08;“集创赛”&#xff09;加速科技杯三等奖作品分享&#xff0c;参加极术社区的【有奖征集】分享你的2023集创赛作品&#xff0c;秀出作品风采&#xff0c;分享2023集创赛作品扩大影响力&#xff0c;更有丰富电子礼…

pdf怎么压缩?pdf压缩方法大全

pdf怎么压缩&#xff1f;PDF是一种广受欢迎的文件格式&#xff0c;相信现在有很多用户都在使用。这是因为PDF具有出色的兼容性&#xff0c;适用于包含数据、图片、表格和文字等各种内容&#xff0c;不管是在电脑、手机、平板上&#xff0c;都可以让文件以最规范的方式打开呈现给…

垃圾收集器ParNewCMS与底层三色标记算法

JVM字节码文件class&#xff1a;&#xff08;16进制&#xff09; 前四个字节码CA FE BA BE&#xff0c;固定logo包含lineNumberTable&#xff1a;用于异常的定位默认第一个localVariableTable为this&#xff0c;无构造方法也会存在最大接口数FFFF 》65535包含最大操作数栈深度…

【算法思想】贪心

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

postgresql,在pgAdmin中修改列名称和列的类型

修改列名 alter table "表名称" rename "旧列名" to "新名称";是否要加引号要看情况&#xff0c;不加引号如果报错&#xff0c;就要加上。无引号&#xff1a;那么所有内容将自动为小写&#xff0c;不区分大小写&#xff1b;带引号&#xff1a;所…

网络安全,weblogic漏洞复现

WebLogic是美国Oracle公司出品的一个Java应用服务器&#xff0c;是一个基于JAVAEE架构的中间件&#xff0c;用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用。 2|0弱口令登陆部署shell文件 App Weblogic Path weblogic/weak_password 2|1介绍 用户管理…

Error: @vitejs/plugin-vue requires vue (>=3.2.13) or @vue/compiler-sfc

启动项目 npm run dev报错&#xff1a; vue3项目运行报错&#xff0c;试了很多方法都无法解决时&#xff0c;请再查看一下是否node版本是否正确&#xff0c;nodejs版本不能低于 16

安防视频/集中云存储平台EasyCVR(V3.3)部分通道显示离线该如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

MySQL系统架构设计

MySQL 一、MySQL整体架构1.1 SQL接口1.2 解析器 Parser1.3 查询优化器 Optimizer1.3.1 逻辑优化1.3.2 物理优化1.3.3 explain 1.4 缓存 Cache1.5 存储引擎 Stroage Management1.6 一条查询SQL的执行流程 二、缓存池&#xff08;Buffer Pool&#xff09;2.1 Buffer Pool 预读机制…

【JVM】运行时数据区之方法区——自问自答

开局从康师傅那里借图几张 线程共享与私有 《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分&#xff0c;但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。” 但对于HotSpotJVM而言&#xff0c;方法区还有一个别名叫做Non-Heap(非堆)&#…

React项目中如何实现一个简单的锚点目录定位

小册 这是我整理的学习资料&#xff0c;非常系统和完善&#xff0c;欢迎一起学习 现代JavaScript高级小册 深入浅出Dart 现代TypeScript高级小册 linwu的算法笔记&#x1f4d2; 前言 锚点目录定位功能在长页面和文档类网站中非常常见,它可以让用户快速定位到页面中的某个…

Pridwen: Universally Hardening SGX Programs via Load-Time Synthesis【ATC`22】

目录 摘要引言性能贡献 背景英特尔SGXSGX的异常SGX侧通道WebAssembly&#xff08;Wasm&#xff09;Wasm中的内存安全PRIDWEN和Wasm 概述场景威胁模型目标适应性证明性可扩展性 架构 标题&#xff1a;Pridwen: Universally Hardening SGX Programs via Load-Time Synthesis 作者…

系统学习Mysql

1.select语句 关键字执行顺序&#xff1a; 1.from 2.where 3.group by 4.select 5.having 6.order by 7.limit SQL 语句执行顺序如下&#xff1a; FROM: 指定要查询的表或子查询&#xff0c;可以包含 JOIN、WHERE 子句过滤等。 WHERE: 对 FROM 子句指定的表或子查询进行限制和…

OpenCV之直线曲线拟合

直线拟合fitLine void fitLine( InputArray points, OutputArray line, int distType,double param, double reps, double aeps ); points:二维点的数组或vector line:输出直线,Vec4f (2d)或Vec6f (3d)的vector distType:距离类型 param:距离参数 reps:径向的精度参数 a…

Tomcat Takeover

靶场介绍 蓝队靶场练习之Tomcat Takeover 场景介绍 我们的 SOC 团队在公司内部网的一台 Web 服务器上检测到可疑活动。为了更深入地了解情况&#xff0c;该团队捕获了网络流量进行分析。此pcap文件可能包含一系列恶意活动&#xff0c;这些活动已导致Apache Tomcat Web服务器…

Cairo介绍及源码构建安装(1)

一、简介 Cairo是一个支持多个输出设备的2D图形库。目前支持的输出目标包括X Window System、win32、图像缓冲区、PostScript、PDF和SVG。实验后端包括OpenGL、Quartz和XCB文件输出。Cairo旨在在所有输出媒体上产生一致的输出&#xff0c;同时利用可用的显示硬件加速&#xff…

基于 ESP32-C2 的 Wi-Fi/BLE 和 LoRa 极低成本无线组网方案

在物联网高速发展的今天&#xff0c;Wi-Fi 和 LoRa 作为近距离和超远距离通信技术&#xff0c;均有其各自的典型应用场景&#xff0c;在各自应用领域都取得了卓越的成就。Wi-Fi 和 LoRa 技术各具优势&#xff0c;在很多场景需求中&#xff0c;如果将两者结合&#xff0c;一方面…

自动化测试如何落地,一篇搞定

前言 前段时间面试了某零售电商企业的测试经理岗位&#xff0c;面试官当时提了这样一个问题&#xff1a;我们这边测试团队开展自动化测试工作将近一年了&#xff0c;但目前还未看到明显的对测试过程或者质量的改善效果。如果是你&#xff0c;你会如何做&#xff1f; 自动化测…