JS入门学习

news2024/11/14 1:34:09

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绑定的函数,会直接把结果返回给onsubmit
    window.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.coloradmin.cn/o/1701951.html

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

相关文章

斯洛文尼亚普利雅玛城堡:吉尼斯世界纪录认证的世界最大溶洞城堡

除了著名的波斯托伊纳溶洞&#xff08;Postojna Cave&#xff09;&#xff0c;普利雅玛城堡&#xff08;Predjama Castle&#xff09;也是波斯托伊纳洞穴公园&#xff08;Postojna Cave Park&#xff09;不容错过的景点之一。这座城堡坐落在斯洛文尼亚&#xff08;Slovenia&…

亚马逊,沃尔玛,速卖通卖家必知:如何运用测评提升产品权重

说到 测评&#xff0c;对于绝大部分卖家而言应该都非常熟悉。因为他们知道&#xff0c;通过测评可以快速地为自己的产品增加评论数量&#xff0c;提升排名&#xff0c;甚至打造畅销产品。 测评不是唯一的手段&#xff0c;但是推销量的一把好手。首先测评能让listing快速成长&a…

中医能治疗懒吗?这3种懒病,中医可以治!

“中医能治懒吗&#xff1f;总感觉肢体软弱&#xff0c;自己想做事&#xff0c;但因为力不从心而怕做。”在史仁杰医生门诊上&#xff0c;有个患者这样问到。 我们常听说&#xff0c;某人很懒&#xff0c;甚至还会把“懒”等同于“好逸恶劳”“不劳而获”&#xff1b;说句公道…

5.14.5 不同 CNN 对超声图像乳腺肿瘤分类的比较

VGG-16 和 Inception V3 两种模型 第一个是使用预训练模型作为特征提取器&#xff0c;第二个是微调预训练模型。 1. 介绍 乳腺癌是女性最常见的癌症&#xff0c;癌症筛查是通过乳房超声 (BUS) 成像和乳房 X 光检查进行的。 目前的问题是需要 依赖大型且带注释的BUS数据集进…

【权威出版】2024年城市建设、智慧交通与通信网络国际会议(UCSTCN 2024)

2024年城市建设、智慧交通与通信网络国际会议 2024 International Conference on Urban Construction, Smart Transportation, and Communication Networks 【1】会议简介 2024年城市建设、智慧交通与通信网络国际会议即将盛大召开&#xff0c;这是一次聚焦城市建设、智慧交通与…

[算法] 优先算法(三):滑动窗口(上)

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …

Docker安装Oracle11g数据库

操作系统&#xff1a;centOS9使用此方法检查是否安装Docker&#xff1a;docker --help&#xff0c;如果有帮助文件则证明安装成功使用此语句检查Docker是否正在运行&#xff1a;docker images&#xff0c;实际上是查看本地镜像如果发现未运行则开启Docker&#xff1a;systemctl…

Linux 36.3@Jetson Orin Nano之系统安装

Linux 36.3Jetson Orin Nano之系统安装 1. 源由2. 命令行烧录Step 1&#xff1a;下载Linux 36.3安装程序Step 2&#xff1a;下载Linux 36.3根文件系统Step 3&#xff1a;解压Linux 36.3安装程序Step 4&#xff1a;解压Linux 36.3根文件系统Step 5&#xff1a;安装应用程序Step …

突发!某大厂机房掉电,MySQL数据库无法启动,紧急恢复过程...

作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复&#xff0c; 安装迁移&#xff0c;性能优化、故障…

类和对象03

六、继承 我们发现&#xff0c;定义这些类时&#xff0c;下级别的成员除了拥有上一级的共性&#xff0c;还有自己的特性。 这个时候我们就可以考虑利用继承的技术&#xff0c;减少重复代码 6.1 继承的基础语法 例如我们看到很多网站中, 都有公共的头部&#xff0c;公共的底…

数据结构—二叉树相关概念【详解】【画图演示】

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 目录 1、二叉树的概念及结构1、1 二叉树的概念1、2 二叉树的结构 2、特殊的二叉树3、二叉树的性…

【Hive SQL 每日一题】行列转换

文章目录 行转列列传行 行转列 测试数据&#xff1a; DROP TABLE IF EXISTS student_scores;CREATE TABLE student_scores (student_id INT,subject STRING,score INT );INSERT INTO student_scores (student_id, subject, score) VALUES (1, Math, 85), (1, English, 78), (…

光纤跳线组成结构划分你知道吗

按照组成结构划分 光纤跳线根据组成结构的不同可分为带状光纤跳线和束状光纤跳线。带状光纤跳线使用的是由光纤带组成的带状光缆&#xff0c;大多呈扁平形状&#xff0c;因具有较高的光纤密度&#xff0c;它可以容纳更多的纤芯&#xff0c;因此大大节省布线成本和空间&#xf…

JavaScript 新特性:新增声明命令与解构赋值的强大功能

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; ES5、ES6介绍 文章目录 &#x1f4af;声明命令 let、const&#x1f35f;1 let声明符&a…

VMware虚拟机如何与主机共享文件夹

本机:WIN10 VMware虚拟机:WIN7 因为每次配置都爱忘记操作,目标是为了在WIN7虚拟机中可以访问本机文件 首先本机操作 新建一个共享文件夹,不带中文目录(最好不要) 点击共享 选择everyone,记得权限"读取和写入" 然后到虚拟机里面 添加一个网络位置 点击浏览,选择网…

刷题之从前序遍历与中序遍历序列构造二叉树(leetcode)

从前序遍历与中序遍历序列构造二叉树 前序遍历&#xff1a;中左右 中序遍历&#xff1a;左中右 前序遍历的第一个数必定为根节点&#xff0c;再到中序遍历中找到该数&#xff0c;数的左边是左子树&#xff0c;右边是右子树&#xff0c;进行递归即可。 #include<vector>…

ChatGPT-4o模型功能介绍——还没用过的看过来

1.概述 OpenAI 持续突破人工智能的边界&#xff0c;推出了其最新模型 ChatGPT-4o&#xff0c;作为 ChatGPT-4 的继承者&#xff0c;该模型有望带来显著的提升和创新功能。本文将深入解析 ChatGPT-4 与 ChatGPT-4o 之间的区别&#xff0c;并探讨它们的功能、性能以及潜在的应用…

5.22 R语言-正态性检验

正态性检验 正态性检验的目的是确定一组数据是否符合正态分布&#xff08;也称高斯分布&#xff09;。在统计分析和数据建模中&#xff0c;正态性假设是许多统计方法和模型的基础。了解数据是否符合正态分布有助于选择适当的统计方法和确保分析结果的有效性。 本文主要从概率…

神秘山洞惊现AI绘画至宝Stable Diffusion残卷

最近听到不少大宗门纷纷发声&#xff1a;随着AI神器的现世“程序员职业将不复存在”&#xff0c;“设计师将要失业”。 至此&#xff0c;不少修士开始担忧起来&#xff0c;现出世的AI神器会不会取代掉我辈修士。 其实&#xff0c;至女娲天神创造人类以来&#xff0c;在这漫漫…

RabbitMQ 交换机类型

常用交换机 发布订阅&#xff08;Publish/Subscribe&#xff09;交换机 一个生产者给多个队列发送消息&#xff0c;X 代表交换机。 交换机的作用&#xff1a;类似网络路由器&#xff0c;主要提供转发功能&#xff0c;解决怎么把消息转发到不同的队列中&#xff0c;让消费者从不…