JS入门学习

JS

JavaScript是一门解释型的脚本语言,其是弱类型的,对变量的数据类型不做严格的要求,变量的类型可以在运行过程中变化
JavaScript能改变HTML内容,属性,样式

大纲

  1. 使用方式
  2. 变量
  3. 运算符
  4. 数组
  5. JS函数
  6. 自定义对象
  7. 事件
  8. 补充

具体案例

使用方式

在script标签中写js代码

script标签即可以写在head里面,也可以写在body里面
推荐写在head部分

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>标签</title>
<!--    这里是在<head>部分写的script--><script>var place ="head";console.log(place)</script>
</head>
<body>
<!--这里是在<body>部分写的script-->
<script>var secondPlace ="body"console.log(secondPlace);
</script>
</body>
</html>

执行的顺序是从代码开始自上而下的

使用script标签引入

主HTML文件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>标签引入</title>
<!--    使用script标签引入js文件--><script type="text/javascript" src="myscript.js"></script>
</head>
<body></body>
</html>

引入的js文件,这里名字叫myscript

alert("我是引入的")

两种使用方式不能混用,混用只显示一个的效果(显示先执行的那个的效果)

变量

下面是常见的数据类型
在这里插入图片描述
无论是整数还是小数都是number
无论字符还是字符串都是string类型,这可以使用单引号,也可以使用双引号
下面是特殊值
null:空值
undefined:未赋值
NAN:不能识别的数据类型,不是一个数

运算符

算术运算符

与Java比较类似
在这里插入图片描述

赋值运算符

也是与Java类似
在这里插入图片描述

关系运算符

在这里插入图片描述
这里注意 == 与 === 的区别
== 是比较值
=== 不仅比较值,还比较数据类型
比如 number = 520,number1 = “520”,这两个进行比较时,在 == 会得到true,而在 === 则会得到false

逻辑运算符

在这里插入图片描述
这里有区别
在这里插入图片描述
注意:当表示布尔的值是我们的数据类型,则会输出该值,否则输出其代表的布尔值
比如(5 + 20)代表true,其值25,则输出25,而对于(5 < 100),其代表true,但是其运算结果不为我们的数据类型,所以输出true

条件运算符

和Java的三元运算符类似

数组

数组的定义

首先,在JavaScript里面的数组的元素可以不是同一个类型

<script>// 方式一:直接创建var array1 = [100,"第二个",'第三个'];// 方式二:先声明,再赋值var array2 = [];array2[0] = 100;array2[1] = "第二个";array2[2] = '第三个';// 方式三:var array3 = new Array(100,"第二个",'第三个');// 方式四:var array4 = new Array();array4[0] = 100;array4[1] = "第二个";array4[2] = '第三个';</script>

这里同样采用的是下标访问的方式,在进行赋值时,如果刚刚赋值下标3,接着直接赋值下标6,那么下标4,5的元素会默认是undefined

数组遍历的方式

使用for循环进行遍历
在这里插入图片描述

JS函数

函数是由事件驱动,或者当他被调用时,执行的可重复代码块

函数的定义

方式一:使用function关键字来定义函数
在这里插入图片描述
方式二:将函数赋给变量
在这里插入图片描述
使用这种方式,就可以进行变量之间的赋值等处理

调用函数

方式一:直接调用
和Java一样的调用方法
方式二:通过事件进行调用

使用细节

在这里插入图片描述
对于JS中的函数重载会覆盖上一次定义,即不能通过更改形参列表来实现重载,对于有形参的函数在调用时,没有传入对于位置的实参,那么就会把其默认为undefined
在这里插入图片描述
小结:
如果形参的个数大于实参的个数,那么会按顺序匹配,而后面多出来的形参会默认为undefined
如果形参的个数小于实参的个数,那么也会按顺序匹配,多出来的实参不管,但是,会把所有的实参全部存入隐形参数arguments

自定义对象

不需要类,直接创建对象
方式一:
在这里插入图片描述
如果访问的一个没有定义过的属性,就会出现变量提升,显示undefined.但是访问一个没有定义的方法,就会报错
方式二:
在这里插入图片描述
注意这里要使用,隔开

事件

常见的事件
在这里插入图片描述
事件的分类

在这里插入图片描述

加载完成事件

onload 加载完成事件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>标签</title><script>function say(){alert("使用静态注册");}</script>
</head>
<!--静态注册-->
<body onload="say()"></body>
</html>

使用动态注册,实现加载完成事件
在这里插入图片描述

点击事件

onclick 鼠标点击某个对象

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>标签</title><script>function say(){alert("你好使用静态注册");}// 因为程序按照顺序执行,这里还没有创建btn1这个按钮// 不能直接得到,所以要使用window的onload,等到加载完成后再进行动态注册// 使用document 的 getElementById方法,通过id得到对象window.onload = function (){var btn1 = document.getElementById("btn1");btn1.onclick = function (){alert("动态注册成功");}}</script>
</head>
<!--静态注册-->
<body >
<button onclick="say()">静态注册按钮</button>
<button id="btn1" >动态注册按钮</button>
</body>
</html>

失去焦点事件

onblur 当鼠标离开时,触发的事件

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>标签</title><script type="text/javascript">
function upperCase(){var name1 = document.getElementById("name1");name1.value = name1.value.toUpperCase();
}
window.onload = function (){var name2 = document.getElementById("name2");name2.onblur = function () {name2.value = name2.value.toUpperCase();}
}</script>
</head>
<!--静态注册-->
<body >
输入英文单词:
<input type="text" id="name1" onblur="upperCase()"/><br>
输入英文单词:
<input type="text" id="name2">
</body>
</html>

内容发生改变事件

onchanged:如果内容发生改变,就执行

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>标签</title><script type="text/javascript">
function mySal() {alert("工资发生变化了~");
}
// 动态注册
window.onload = function (){var sel1 = document.getElementById("sel1");sel1.onchange = function (){alert("女友更替")}
}</script>
</head>
<!--静态注册-->
<body >
你当前的工资水平:
<!--静态注册 onchange 事件-->
<select onchange="mySal()"><option>--工资范围--</option><option>10k以下</option><option>10k-30k</option><option>30k以上</option>
</select><br>
你当前女友是谁:
<!--动态注册-->
<select id="sel1"><option>--女友--</option><option>一号</option><option>二号</option><option>三号</option>
</select>
</body>
</html>

表单提交事件

onsubmit:注册按钮被点击,提交表单

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>标签</title><script type="text/javascript">function register(){// 先得到输入的账号,密码var username = document.getElementById("username");var pwd = document.getElementById("pwd");if (username.value == ""||pwd.value == ""){alert("账号和密码不能为空")return false;// 代表不提交}return true;// 代表提交}// 动态注册// 这里onsubmit绑定的函数,会直接把结果返回给onsubmitwindow.onload = function (){var form2 = document.getElementById("form2");form2.onsubmit = function (){if (form2.username.value == "" || form2.pwd.value == ""){alert("账号和密码不能为空,不能提交")return false;}return true;}}</script>
</head>
<body >
<div><!--静态注册--><h1>注册用户</h1>
<!--    这里register()这个方法,返回了真或假,还要再return到onsubmit才行--><form action="test1.html" onsubmit="return register()">u:<input type="text" id="username" name="username"><br>p:<input type="password" id="pwd" name="pwd"><br><input type="submit" value="注册用户"></form>
</div>
<div><h1>注册用户2</h1><form action="test1.html" id="form2">u:<input type="text" name="username"><br>p:<input type="password" name="pwd"><br><input type="submit" value="注册用户"></form>
</div>
</body>
</html>

补充

使用A.test(B)方法,来匹配B是否满足A的正则表达式格式

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

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

相关文章

mysql中InnoDB的表空间--独立表空间

大家好&#xff0c;上篇文章我们在讲mysql数据目录的时候提到了表空间这个名词&#xff0c;它是一个抽象的概念&#xff0c;对于系统表空间来说&#xff0c;对应着文件系统中一个或多个实际文件&#xff1b;对于每个独立表空间来说&#xff0c;对应着文件系统中一个名为表名.ib…

node.js学习P3-P10

P3 npm package.json&#xff08;package解读npm工具换镜像源&#xff09; 一个package.json文件可以的作用 作为一个描述文件&#xff0c;描述了你的项目依赖哪些包 &#xff0c;用来干什么的允许我们使用“语义版本规则”&#xff0c;指明你项目依赖的版本让你的构建更好的…

Java绩效考核系统源码 springboot员工绩效考核系统源码

Java绩效考核系统源码 springboot员工绩效考核系统源码-009 源码下载地址&#xff1a;https://download.csdn.net/download/xiaohua1992/89352195 项目介绍 本系统的功能分为管理员和员工两个角色 管理员的功能有&#xff1a; &#xff08;1&#xff09;个人中心管理功能&a…

一文搞定cuda版本、显卡驱动及多CUDA版本管理

安装cuda是每个AI从业人员必经之路。网上关于cuda、显卡驱动已经相关命令很多都解释不清楚&#xff0c;于是本文梳理一下&#xff0c;既方便自己记忆&#xff0c;也方便小白学习。 CUDA 首先&#xff0c;CUDA版本&#xff0c;一般指cuda-toolkit&#xff0c;即cuda开发工具包…

XShell免费版的安装配置

官网下载 https://www.xshell.com/zh/free-for-home-school/ 下载地址 通过邮箱验证 新建会话 通过ssh登录树莓派 填写主机IP 点击用户身份验证 成功连接

高项案例分析知识点总结

文章目录 纠错题计算题进度估算成本管理立项管理版本管理组合管理知识产权信息技术计算题运筹学 纠错题 人&#xff1a;人员经验、能力、数量、缺少培训&#xff1b;自己一个人完成需求和计划不正确流程&#xff1a;先做什么&#xff0c;后做什么&#xff0c;流程是否正确。是…

c++ (命名空间 字符串)

思维导图&#xff1a; 定义自己得命名空间myspace,在myspace中定义string类型变量s1,再定义一个函数完成字符串逆置 #include <iostream> #include <cstring> //定义自己得命名空间myspace,在myspace中定义string类型变量s1,再定义一个函数完成字符串逆置 using n…

抽屉网关停,Digg类网站退出互联网舞台

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 别人我不清楚&#xff0c;至少在松松我心中&#xff1a;抽屉网是世界著名的网站&#xff0c;而近期抽屉新热榜突然宣布关站了&#xff0c;我内心充满遗憾。因为抽屉网站收集的内容&#xff0c;让我看到了更大的世界…

【学习记录】服务器转发使用tensorboard

场景 代码在服务器上运行&#xff0c;想使用tensorboard查看训练的过程。 但是服务器上不能直接访问地址&#xff0c;所以要转发端口到本地&#xff0c;从而在本地网页中能够打开tensorboard。 参考&#xff1a;https://zhuanlan.zhihu.com/p/680596384 这时我们需要建立本地…

C++ 函数模板与模板函数

一 代码重用技术 函数 类与对象 继承与派生 多态&#xff08;函数重载、运算符重载、虚函数、纯虚函数与抽象类&#xff09; 泛型程序设计 通用的代码需要补受数据类型的影响&#xff0c;并且可以自动适应数据类型的变化&#xff0c;这种程序设计类型称为泛型程序设计。 二 模…

Logstash笔记

目录​​​​​​​ 一、简介 二、单个输入和输出插件 三、多个输入和输出插件 四、pipeline结构 五、队列和数据弹性 六、内存队列 七、持久化队列 八、死信队列 (DLQ) 九、输入插件 1)、beats 2)、dead_letter_queue 3)、elasticsearch 4)、file 5)、redis 十、…

字符串和字符串函数(1)

前言&#xff1a; 字符串在C语言中比较特别&#xff0c;没有单另的字符串类型&#xff0c;想要初始化字符串必须用字符变量的数组初始化&#xff0c;但是在C语言标准库函数中提供了大量能对字符串进行修改的函数&#xff0c;比如说可以实现字符串的的拷贝&#xff0c;字符串的追…

经常碰到的20个等待事件

经常碰到的20个等待事件 oracle等待事件简介 DBA团队维护的部分应用运行在oracle数据库平台&#xff0c;为及时了解数据库的运行情况&#xff0c;需要建立涵盖各个维度的监控体系&#xff0c;包括实例状态、空间使用率、ORA错误等数十项监控指标。这其中有一个有效判断数据库…

Nodejs+Websocket+uniapp完成聊天

前言 最近想做一个聊天&#xff0c;但是网上的很多都是不能实现的&#xff0c;要么就是缺少代码片段很难实现websocket的链接&#xff0c;更别说聊天了。自己研究了一番之后实现了这个功能。值得注意的是&#xff0c;我想在小程序中使用socket.io&#xff0c;不好使&#xff0…

从0.1nm到1mm:显微测量仪在抛光至粗糙表面测量中的技术突破

显微测量仪是纳米级精度的表面粗糙度测量技术。它利用光学、电子或机械原理对微小尺寸或表面特征进行测量&#xff0c;能够提供纳米级甚至更高级别的测量精度&#xff0c;这对于许多科学和工业应用至关重要。 在抛光至粗糙表面测量中&#xff0c;显微测量仪器具有从0.1nm到1mm…

java:程序包javax. servLet不存在

一.原因 1.项目Tomcat 服务器依赖未导入 2.项目的 SDK 版本选择错误 二.解决方法 方案一&#xff1a; 1.选择项目结构选项 2.导入Tomcat依赖 把tomcat里面的【jsp-api.jar】和【servlet-api.jar】这两个包导入 方案二&#xff1a; 1.选择项目结构选项 2.选择自己的jdk版本…

Golang | Leetcode Golang题解之第108题将有序数组转换为二叉搜索树

题目&#xff1a; 题解&#xff1a; func sortedArrayToBST(nums []int) *TreeNode {rand.Seed(time.Now().UnixNano())return helper(nums, 0, len(nums) - 1) }func helper(nums []int, left, right int) *TreeNode {if left > right {return nil}// 选择任意一个中间位置…

【Python性能优化】取最值的差异

取最值的差异 测试Windows 测试结果Linux 测试结果 测试 测试内容&#xff1a;从一组 x, y, z 坐标值中获得每个维度&#xff08;x、y、z&#xff09;的值域范围。此处不考虑将数据临时存放到内存&#xff0c;再整组获取值域的操作&#xff08;因为对单文件这么做问题不大&…

PS系统教学01

在前面几节内容基本介绍了PS的基本作用&#xff0c;简单的对PS中的某些基础功能进行介绍应用。 接下来我们进行系统的分享。 本次分享内容 基础的视图操作 接下来我们是对于PS工作区域的每个图标工具进行详细的分享 抓手工具缩放工具 这个图标是将工具栏由一列变成两列 一…

SpringBoot——整合SLF4j进行日志记录

目录 日志 项目总结 新建一个SpringBoot项目 pom.xml application.properties项目配置文件 logger.xml日志配置文件 TestController控制器 SpringbootSlf4jApplication启动类 启动项目 生成logger.log日志文件 日志 在开发中&#xff0c;我们经常使用 System.out.prin…