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,一经查实,立即删除!

相关文章

训练的过程中内存一直增加的问题(内存泄漏)、如何检查是否内存泄漏

更新于&#xff1a;2024年5月27日09:47:01 经过了漫长的排查&#xff0c;使用tracemalloc也并不能找到哪里内存泄漏&#xff0c;最后只能通过给出的错误去反思&#xff0c;然后再凭感觉去猜测错误所在位置&#xff1a; 所报的错误是&#xff1a; Too many open files&#x…

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

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

DQL( 数据查询语言)

1. 基本查询 select * from 表名; select 字段,字段2,… from 表名; select * from 表名 where 筛选条件; select 字段,字段2,… from 表名 where 筛选条件; 2. 范围查询 select * from emp where sal 3000; select * from emp where sal ! 3000; select * from emp where s…

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…

代码随想录训练营Day49、50、52:Leetcode123、188、309、714、300、674、718

Leetcode123&#xff1a; 问题描述&#xff1a; 给定一个数组&#xff0c;它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意&#xff1a;你不能同时参与多笔交易&#xff08;你必须在再次购买前…

一文搞定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 点击用户身份验证 成功连接

hadoop基础之MapReduce的学习

hadoop基础之MapReduce的学习 MapReduce的执行步骤&#xff1a; 1.Map package com.shujia.mr.worcount;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapp…

24校招总结

个人背景 本科&#xff1a;三本通信专业 硕士&#xff1a;B区双非计算机硕 今年2月签了东南沿海二线城市某公司C游戏服务端开发 我同学大部分都是去电网&#xff0c;大专老师&#xff0c;气象局事业编……就我这个是纯牛马了。 离收到Offer3个月了&#xff0c;前段时间参加…

高项案例分析知识点总结

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

前端基础入门三大核心之JS篇:掌握数字魔法 ——「累加器与累乘器」的奥秘籍【含样例代码】

前端基础入门三大核心之JS篇&#xff1a;掌握数字魔法 ——「累加器与累乘器」的奥秘籍 &#x1f9d9;‍♂️ 基础概念&#xff1a;数字的魔杖与炼金术累加器&#xff08;Accumulator&#xff09;累乘器&#xff08;Multiplier&#xff09; &#x1f4da; 实战演练&#xff1a;…

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

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

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

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

【算法】合并k个已排序的链表

✨题目链接&#xff1a; NC51 合并k个已排序的链表 ✨题目描述 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。 数据范围&#xff1a;节点总数 0≤&#x1d45b;≤50000≤n≤5000&#xff0c;每个节点的val满足 ∣&#x1d463;&#x1d44e;&#x1d459;∣&…

【学习记录】服务器转发使用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错误等数十项监控指标。这其中有一个有效判断数据库…