百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

JavaScript中的常用事件,以及内置对象详解

bigegpt 2024-10-19 02:51 51 浏览

今天是刘小爱自学Java的第81天。

感谢你的观看,谢谢你。

话不多说,开始今天的学习:

学前端有一个非常权威的组织,也就是w3c,其有个专门的教程文档,特别的全面。

我研究了下其文档,发现竟然连Python的教程都有,Java倒是一直显示“即将上线”。

当然官方文档存在的最大意义在于遇到不懂的知识点了可以通过它找到对应的讲解。

至于学习最好还是跟着某些专业教程来,既能少走许多弯路,也能节省许多时间。

其中头条搜索有很多关于JavaScript的干货教程,专业又详细,点击下方卡片搜索“JavaScript”了解更多

一、js输出

这一块跟着文档学一学,对其有一定的了解,之后还是跟着教程走。

w3c网站将代码模板都给写好了,自己只需要做修改代码测试就可以了,十分方便。

1.innerHTML

document有一个方法getElementById(),见名知意,该方法是根据id获取对应的元素。

id是demo,那么获取id为demo的内容,上图中也就是1024。

但是为何输出又是“刘小爱”了呢?

原来还有个innerHTML,这是一个属性,相当于给id为“demo”的元素重新赋值了。

其中还有一个属性叫innerText,这个是只能修改元素内部的纯文本。

2.window.alert()

alert,警示的意思,也就是说调用alert方法,会弹出一个警示框来显示数据。

3console.log()

使用该方法可以将内容输出到浏览器控制台。

浏览器按F12即可打开浏览器控制台。

console,控制台的意思。

这个也就相当于IDEA中的控制台,只不过只是浏览器里面的,代码编写如下:

此外,昨天还学了一个专门输出的语句document.writeln(),就不再赘述了。

其实js中的所有知识点都可以在文档中学习。

但我这边主要还是学Java,不可能花大量的时间去学js,只学一个大概。

以后遇到问题,查文档能看懂即可。

二、js事件

事件是指浏览器或用户做的某些事情。

举几个例子:鼠标单击、双击某个按钮;键盘按着(不停地在输入);键盘弹起(输入结束)…

事件有好多个,暂且只学常用的几个。

①单击事件(全名函数注册)

onclick,即为单击的意思。

在input标签中有一个属性叫onclick,单击一下该按钮,会触发对应的事件。

也就是会调用onclick对应的那个函数,上图中就是click01函数。

所以点下按钮,click01函数执行,弹出警示框。

注意:函数名不能为click。

②双击事件(匿名函数注册)

ondblclick,它比onclick多一个dbl。dbl,double的简写,点两下单击,所以是双击。

这样记忆下来也就清晰好记多了。

其使用的是匿名注册,它的特点在于input标签中不用设置对应的函数名了。

而是用对应的id将该标签和匿名函数联系起来。

这样的好处在于耦合度低

如果出了什么意外,只需要删除匿名函数即可,对input标签本身不用修改。

但是使用匿名函数也会有一个问题:

一开始是将script标签放在了input标签下面,现在将其移动到head标签中做一个测试,会发现:

单击事件能够触发,但是双击事件不能触发

为什么会这样呢?我个人的理解是:

全名函数是直接在input标签(也就是HTML中)触发的事件;而匿名函数是在js中触发的事件。

这样匿名函数就会有一个执行顺序问题:

页面是从上到下执行的,当加载到js中双击事件的时候,对应的input标签都还没有加载呢。

那如何解决这个问题?

要么将script标签放在input标签后面,要么采用如下方法:

③页面加载事件

window.onload。根据其意思就能理解其表示的是网页加载完事件。

这是什么意思呢?

本来页面是从上到下依次执行的,当它加载到该事件的时候,相当于页面已经加载完了。

所以就算input标签在script标签的后面,也能触发事件。emm…暂且就是这样理解的。

三、js对象

学一学js中内置的几种常用对象

1数组对象

①关于数组遍历

在Java中数组直接打印是一串地址,但是在js中数组是可以直接打印的,数字之间用逗号隔开。

至于数组遍历,js和Java中一样,也是for循环遍历数组中的每一个元素,索引位从0开始。

②关于数组越界

在Java中,数组的长度确定后是不可变的,所以会出现越界问题。

但是在js中,数组的长度竟然是可变化的。

例子中直接给数组6索引位赋值,5索引位没有数字,默认为undefined(未定义数据)。

③关于数组方法

Java中的数组是没有特有方法的,只有继承自Object的方法。

但是js中的数组是有很多方法的,并且方法有点类似于Java中的集合:

  • concat:将两个数组拼接成一个新的数组。
  • reverse:将数组元素反转。
  • join:将对应元素和数组中的元素逐个拼接。
  • sort:将数组排序,直接排序默认是升序。
  • sort:使用比较器,a-b为升序,b-a为降序。

其中值得注意的是:反转、排序方法是对数组本身产生了修改。

而其它方法对数组本身没有影响,只是形成了一个新的数组。

2日期对象

①日期对象

直接打印是一串英文格式的日期。

②getTime()

也和Java中一样,获取系统当前时间的毫秒值。

③toLocaleString()

将时间格式转换成当前系统对应的本地格式。

在Java中,需要自定义格式,显得特别的麻烦,但是在js中直接调用该方法就可以了。

3全局对象

什么叫全局对象呢?

就是不用创建对象,直接可以使用该对象。

有点类似于Java中的静态方法,但是js中更简洁,连类名都没有的。

①parseInt()

在Java中Integer类就有一个静态方法parseInt(),作用就是将字符串转换成int类型。

但是在js中,并不是完全是这样。它的作用是:

  • 如果是字符串,会从首字母开始获取数字,一旦发现非数字字符,马上停止获取。
  • 如果是数字,遇到小数点就会停止获取内容。

②parseFloat()

该方法的作用和parseInt()的作用是大同小异的,区别在于是能转换成小数。

当带单位的数字(比如170cm)需要进行运算时,这两种方法会非常实用。

③isNaN()

该方法使用于对字符串的判断,见名知义,判断是否不是一个数字:

  • 如果字符串不是纯数字,返回值为true。
  • 如果字符串是纯数字,返回值为false。

①encode编码

可把字符串作为 URI 进行编码,让浏览器能看懂。

②decode解码

可以将编码过的URI进行解码。

编码后的URL我们是看不懂的,当浏览器上的参数被传入服务器时,又需要解码成我们能看得懂的。

最后

谢谢你的观看。

如果可以的话,麻烦帮忙点个赞,谢谢你。

相关推荐

得物可观测平台架构升级:基于GreptimeDB的全新监控体系实践

一、摘要在前端可观测分析场景中,需要实时观测并处理多地、多环境的运行情况,以保障Web应用和移动端的可用性与性能。传统方案往往依赖代理Agent→消息队列→流计算引擎→OLAP存储...

warm-flow新春版:网关直连和流程图重构

本期主要解决了网关直连和流程图重构,可以自此之后可支持各种复杂的网关混合、多网关直连使用。-新增Ruoyi-Vue-Plus优秀开源集成案例更新日志[feat]导入、导出和保存等新增json格式支持...

扣子空间体验报告

在数字化时代,智能工具的应用正不断拓展到我们工作和生活的各个角落。从任务规划到项目执行,再到任务管理,作者深入探讨了这款工具在不同场景下的表现和潜力。通过具体的应用实例,文章展示了扣子空间如何帮助用户...

spider-flow:开源的可视化方式定义爬虫方案

spider-flow简介spider-flow是一个爬虫平台,以可视化推拽方式定义爬取流程,无需代码即可实现一个爬虫服务。spider-flow特性支持css选择器、正则提取支持JSON/XML格式...

solon-flow 你好世界!

solon-flow是一个基础级的流处理引擎(可用于业务规则、决策处理、计算编排、流程审批等......)。提供有“开放式”驱动定制支持,像jdbc有mysql或pgsql等驱动,可...

新一代开源爬虫平台:SpiderFlow

SpiderFlow:新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。-精选真开源,释放新价值。概览Spider-Flow是一个开源的、面向所有用户的Web端爬虫构建平台,它使用Ja...

通过 SQL 训练机器学习模型的引擎

关注薪资待遇的同学应该知道,机器学习相关的岗位工资普遍偏高啊。同时随着各种通用机器学习框架的出现,机器学习的门槛也在逐渐降低,训练一个简单的机器学习模型变得不那么难。但是不得不承认对于一些数据相关的工...

鼠须管输入法rime for Mac

鼠须管输入法forMac是一款十分新颖的跨平台输入法软件,全名是中州韵输入法引擎,鼠须管输入法mac版不仅仅是一个输入法,而是一个输入法算法框架。Rime的基础架构十分精良,一套算法支持了拼音、...

Go语言 1.20 版本正式发布:新版详细介绍

Go1.20简介最新的Go版本1.20在Go1.19发布六个月后发布。它的大部分更改都在工具链、运行时和库的实现中。一如既往,该版本保持了Go1的兼容性承诺。我们期望几乎所...

iOS 10平台SpriteKit新特性之Tile Maps(上)

简介苹果公司在WWDC2016大会上向人们展示了一大批新的好东西。其中之一就是SpriteKitTileEditor。这款工具易于上手,而且看起来速度特别快。在本教程中,你将了解关于TileE...

程序员简历例句—范例Java、Python、C++模板

个人简介通用简介:有良好的代码风格,通过添加注释提高代码可读性,注重代码质量,研读过XXX,XXX等多个开源项目源码从而学习增强代码的健壮性与扩展性。具备良好的代码编程习惯及文档编写能力,参与多个高...

Telerik UI for iOS Q3 2015正式发布

近日,TelerikUIforiOS正式发布了Q32015。新版本新增对XCode7、Swift2.0和iOS9的支持,同时还新增了对数轴、不连续的日期时间轴等;改进TKDataPoin...

ios使用ijkplayer+nginx进行视频直播

上两节,我们讲到使用nginx和ngixn的rtmp模块搭建直播的服务器,接着我们讲解了在Android使用ijkplayer来作为我们的视频直播播放器,整个过程中,需要注意的就是ijlplayer编...

IOS技术分享|iOS快速生成开发文档(一)

前言对于开发人员而言,文档的作用不言而喻。文档不仅可以提高软件开发效率,还能便于以后的软件开发、使用和维护。本文主要讲述Objective-C快速生成开发文档工具appledoc。简介apple...

macOS下配置VS Code C++开发环境

本文介绍在苹果macOS操作系统下,配置VisualStudioCode的C/C++开发环境的过程,本环境使用Clang/LLVM编译器和调试器。一、前置条件本文默认前置条件是,您的开发设备已...