黑马JavaWeb开发笔记05——JavaScript介绍、基本语法、函数、对象(Array, String, json, BOM, DOM)、事件监听

news2024/9/19 9:55:27

文章目录

  • 前言
  • 一、JavaScript介绍和引入方式
    • 1. 介绍
    • 2. 引入方式
    • 3. VScode引入演示
  • 二、JavaScript基础语法
    • 1. 书写语法
    • 2. 变量
      • 2.1 var
      • 2.2 let
      • 2.3 const
    • 3. 数据类型、运算符、流程控制语句
      • 3.1 数据类型
      • 3.2 运算符
      • 3.3 流程控制语句
  • 三、JavaScript函数
    • 1. 第一种定义方式
    • 2. 第二种定义方式
    • 3. 注意事项
  • 四、JavaScript对象
    • 1. 基本对象-Array
    • 2. 基本对象-String
    • 3. 基本对象-JSON
      • 3.1 JS自定义对象
      • 3.2 JavaScript Object Notation 对象标记法
      • 3.3 JSON基本语法
    • 4. BOM对象
      • 4.1 window对象
    • 5. DOM对象
      • 5.1 DOM介绍
      • 5.2 获取DOM对象
  • 五、JavaScript事件监听
    • 1. 介绍
    • 2. 事件绑定
    • 3. 常用事件
  • 总结


前言

本篇文章是2023年最新黑马JavaWeb开发笔记05:JavaScript介绍、基本语法、函数、对象、事件的总结,帮助需要学习Web开发的朋友温故而知新。

  1. JS介绍
  2. JS基本语法
  3. JS函数
  4. JS对象(Array, String, json, BOM, DOM)
  5. JS事件监听

一、JavaScript介绍和引入方式

1. 介绍

  • 是一门跨平台、面向对象的脚本语言,是用来控制网页行为的,使网页可以交互
    • 脚本语言:这样的代码编写出来不需要经过编译,直接经过浏览器解释就可以运行
  • JavaScript和java是完全不同的语言,无论是概念还是设计,但是基础语法类似

2. 引入方式

  • 第一种方式:内部脚本(将JS代码定义在HTML页面中)
    • JavaScript代码必须位于< script >< /script >标签之间
    • 在HTML文档中,可以在任意地方,放置任意数量的< script >
    • 一般会把脚本置于< body >元素的底部,可改善显示速度
  • 第二种方式:外部脚本(将JS代码定义在外部 JS文件中,然后引入到 HTML页面中)
    • 外部JS文件中,只包含JS代码,不包含< script >标签
    • 引入外部js的< script >标签,必须是双标签

3. VScode引入演示

第一种:内部脚本
用最简单的alert进行演示,会出现弹窗:
在这里插入图片描述

第二种:外部脚本

  • 新建文件夹专门存放js文件,写入语句
    在这里插入图片描述
  • 输入scr就可以自动引入js外部文件(选择script: src)
    • 注意:demo.js中只有js代码,没有< script >标签
    • 注意:不能自闭合,否则无效

      在这里插入图片描述

二、JavaScript基础语法

1. 书写语法

  • 区分大小写:与 Java 一样,变量名、函数名以及其他一切东西都是区分大小写的
  • 每行结尾的分号可有可无(建议写上,更加严谨)
  • 大括号表示代码块
  • 注释
    • 单行注释:// 注释内容
    • 多行注释:/* 注释内容 */
  • 输出语句(三种方式)
    在这里插入图片描述
  • 警告框输出
    在这里插入图片描述
  • 在HTML输出内容
    在这里插入图片描述
  • 写入浏览器控制台
    (本人用的是Google,F12点击Console就可以看到了)
    在这里插入图片描述

2. 变量

  • js声明变量主要通过以下三种关键字
    在这里插入图片描述
    • 不需要指定特定的数据类型,直接用var就可以
  • js中声明变量还需要注意如下几点:
    • JavaScript 是一门弱类型语言,变量(var)可以存放不同类型的值
      在这里插入图片描述

    • 变量名需要遵循如下规则

      • 组成字符可以是任何字母、数字、下划线(_)或美元符号($)
      • 数字不能开头
      • 建议使用驼峰命名

2.1 var

  • 作用域比较大,是全局变量
    (在代码块里定义的x仍能被代码块外面的alert接收到)
    在这里插入图片描述
  • 可以重复定义(新的定义会取代旧的定义)

2.2 let

  • 在ECMAScript 6 新增了 let关键字来定义变量
  • 它的用法类似于 var,但是所声明的变量,只在 let关键字所在的代码块内有效
  • 不允许重复声明

2.3 const

  • 新增了const关键字用来声明常量
  • 常量的值无法更改

3. 数据类型、运算符、流程控制语句

3.1 数据类型

  • 原始类型 和 引用类型
    在这里插入图片描述
  • 使用typeof函数可以返回变量的数据类型
    在这里插入图片描述

3.2 运算符

在这里插入图片描述

  • ==
    • 只比较值是否相等,不区分数据类型
    • 自动转换类型进行值得比较
  • ===
    • 不光比较值,还要比较类型
    • 如果类型不一致,直接返回false
  • js中可以通过parseInt()函数来进行将其他类型转换成数值类型
    在这里插入图片描述
  • 在js中,还有非常重要的一点是:0, null, undefined, “”, NaN 理解成false,反之理解成true
    • " "里面虽然是空格,但是还是视为非空字符串,仍然是true
    • ""里面什么都没有,视为空字符串,所以是false
    • 浏览器刷新页面,发现没有任何弹框,因为0理解成false,所以条件不成立
      在这里插入图片描述
    • 浏览器刷新,因为1理解成true,条件成立
      在这里插入图片描述
      在这里插入图片描述

3.3 流程控制语句

if,switch,for等和java保持一致,不再赘述

三、JavaScript函数

1. 第一种定义方式

在这里插入图片描述

  • 因为JavaScript是弱数据类型的语言,所以有如下几点需要注意:
    • 形式参数不需要声明类型,并且JavaScript中不管什么类型都是let或者var去声明,加上也没有意义。
    • 返回值不需要声明类型,直接return即可
      在这里插入图片描述

2. 第二种定义方式

在这里插入图片描述
代码实现:
在这里插入图片描述

3. 注意事项

JS中,函数调用可以传递任意个数的参数。
在这里插入图片描述

四、JavaScript对象

JavaScript中的对象有很多,主要可以分为如下3大类,我们可以打开W3school在线学习文档,来到首页,在左侧栏找到浏览器脚本下的JavaScript,点击右侧的参考书。

  • 可以大体分为3大类
    • 第一类:基本对象,我们主要学习Array和JSON和String
    • 第二类:BOM对象,主要是和浏览器相关的几个对象
    • 第三类:DOM对象,JavaScript中将html的每一个标签都封装成一个对象

1. 基本对象-Array

Array对象时用来定义数组的。

  • 定义

    • 语法格式1:
      var 变量名 = new Array(元素列表);
    • 语法格式2:
      var 变量名 = [ 元素列表 ];
    • 数组访问:
      arr[索引] = 值;
  • 特点

    • JavaScript中数组相当于java中的集合,数组的长度是可以变化
      在这里插入图片描述
    • JavaScript是弱数据类型的语言,所以数组中可以存储任意数据类型的值
      在这里插入图片描述
      在这里插入图片描述
  • 属性

    • length属性可以用来获取数组的长度,可以用来遍历数组中的元素
      在这里插入图片描述
      在这里插入图片描述
  • 方法
    在这里插入图片描述

    • forEach()
      没有元素的内容是不会输出的,forEach只会遍历有值的元素
      - 	用来遍历的所以这个方法的参数,需要传递一个函数,而且这个函数接受一个参数,就是遍历时数组的值
    • push()函数
    • 用于向数组的末尾添加元素,其中函数的参数就是需要添加的元素
      在这里插入图片描述
    • splice()函数
      • 删除数组中的元素,函数中填入2个参数
      • 参数1:表示从哪个索引位置删除
      • 参数2:表示删除元素的个数
        在这里插入图片描述

2. 基本对象-String

  • 定义

    • 方式1
      var 变量名 = new String("…") ;
    • 方式2
      var 变量名 = "…" ;
  • 属性
    在这里插入图片描述

  • 方法
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3. 基本对象-JSON

3.1 JS自定义对象

  • 语法格式
    在这里插入图片描述
    • 调用属性
      对象名.属性名
    • 调用函数
      对象名.函数名()
    • 函数方法的写法可以简化
      在这里插入图片描述

3.2 JavaScript Object Notation 对象标记法

  • 通过JavaScript标记法书写的文本
  • json这种数据格式的文本经常用来作为前后台交互的数据载体
  • 可以搜索json在线解析,可以检查自己写的json语句是否正确
    在这里插入图片描述

3.3 JSON基本语法

  • 定义
    var 变量名 = '{"key1": value1, "key2": value2}';
  • 示例
    在这里插入图片描述
  • 如果这里用alert(jsonstr.name);的话,浏览器会输出undefined,因为此时的jsonstr是字符串,而json.属性名是json对象的获取方式,所以不能这么获取。
  • 有两种方法进行json字符串和JS对象的转换方式:
      1. JSON字符串转换为JS对象
        var jsObject = JSON.parse(userStr);
      1. JS对象转换为JSON字符串
        var jsonStr = JSON.stringify(jsObject);

4. BOM对象

  • BOM的全称是Browser Object Model 浏览器对象模型,是JavaScript将浏览器的各个组成部分封装成了对象
  • 我们要操作浏览器的部分功能,可以通过操作BOM对象的相关属性或者函数来完成
  • 例如:我们想要将浏览器的地址改为 http://www.baidu.com ,我们就可以通过BOM中提供的location对象的href属性来完成,代码如下:
    location.href='http://www.baidu.com'
  • BOM主要提供五个对象
    在这里插入图片描述
    上述5个对象与浏览器各组成对应的关系如下图所示:
    在这里插入图片描述

4.1 window对象

  • window对象指的是浏览器窗口对象,是JavaScript的全部对象

  • 对于window对象,我们可以直接使用,并且对于window对象的方法和属性,我们可以省略window

  • 例如:我们之前学习的alert()函数其实是属于window对象
    在这里插入图片描述

  • window对象提供了获取其他BOM对象的属性
    在这里插入图片描述

    • location
      • 地址栏对象
      • 获取:使用window.location获取
      • 属性:href:设置或返回完整的URL
        在这里插入图片描述
        在这里插入图片描述
  • window也提供了一些常用的函数,如下表格所示:
    在这里插入图片描述

    • confirm()
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • setInterval()
      在这里插入图片描述
      在这里插入图片描述
    • setTimeout()
      在这里插入图片描述
      浏览器会在延时3秒后弹出弹框,点击确定后不会再出现。

5. DOM对象

5.1 DOM介绍

  • DOM:Document Object Model 文档对象模型。也就是 JavaScript 将 HTML 文档的各个组成部分封装为对象
  • 将标记语言的各个组成部分封装为对应的对象
    • Document:整个文档对象
    • Element:元素对象
    • Attribute:属性对象
    • Text:文本对象
    • Comment:注释对象
  • 左边是 HTML 文档内容,右边是 DOM 树
    在这里插入图片描述
  • DOM作用
    • 改变 HTML 元素的内容
    • 改变 HTML 元素的样式(CSS)
    • 对 HTML DOM 事件作出反应
    • 添加和删除 HTML 元素

5.2 获取DOM对象

要操作DOM对象的前提是先获取元素对象,然后才能操作。所以学习DOM,主要的核心是:

  • 如何获取DOM中的元素对象(Element对象 ,也就是标签)
  • 如何操作Element对象的属性,也就是标签的属性。

获取DOM中的元素对象

  • HTML中的Element对象可以通过Document对象获取,而Document对象是通过window对象获取的。

  • document对象提供的用于获取Element元素对象的api如下表所示:
    在这里插入图片描述
    body里面写入如下内容,用于方法的测试:
    在这里插入图片描述

  • document.getElementById()
    根据标签的id属性获取标签对象,id是唯一的,所以获取到是单个标签对象
    在这里插入图片描述

  • document.getElementsByTagName()
    根据标签的名字获取标签对象,同名的标签有很多,所以返回值是数组
    在这里插入图片描述

  • document.getElementsByName()
    根据标签的name的属性值获取标签对象,name属性值可以重复,所以返回值是一个数组
    在这里插入图片描述

  • document.getElementsByClassName()
    根据标签的class属性值获取标签对象,class属性值也可以重复,返回值是数组
    在这里插入图片描述

操作Element对象的属性

  • 查询文档资料
    在这里插入图片描述
  • 可以看到我们可以通过div标签对象的innerHTML属性修改标签的内容。此时我们想把页面中的传智教育替换成传智教育666
    在这里插入图片描述

五、JavaScript事件监听

1. 介绍

  • 事件
    HTML事件是发生在HTML元素上的 “事情”,例如:按钮被点击;鼠标移到元素上;输入框失去焦点等等…
  • 事件监听
    给这些事件绑定函数,当事件触发时,可以自动的完成对应的功能。

2. 事件绑定

在这里插入图片描述

JavaScript对于事件的绑定提供了2种方式

  • 方式1:通过html标签中的事件属性进行绑定
    例如一个按钮,我们对于按钮可以绑定单机事件,可以借助标签的onclick属性,属性值指向一个函数
    在这里插入图片描述

  • 方式2:通过DOM中Element元素的事件属性进行绑定
    依据我们学习过得DOM的知识点,我们知道html中的标签被加载成element对象,所以我们也可以通过element对象的属性来操作标签的属性
    在这里插入图片描述

3. 常用事件

在这里插入图片描述


总结

本篇文章是2023年最新黑马JavaWeb企业级开发(知识清单)05:JavaScript介绍、基本语法、函数、对象、事件内容的总结,帮助需要学习Web开发的朋友温故而知新。

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

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

相关文章

【C++ Primer Plus习题】6.8

问题: 解答: #include <iostream> #include <fstream> #include <string> using namespace std;int main() {string filename;ifstream stream;char read_char;int count0;cout << "请输入要打开的文件:";getline(cin, filename);stream.op…

文章生成用这三款伪原创软件效果好

在当今信息爆炸的时代&#xff0c;无论是网站运营者、博主、作家还是学生&#xff0c;对文章的需求量越来越大。他们需要用大理的的原创文章来满足他们工作需求。然而&#xff0c;对于许多人来说&#xff0c;写作一篇优质的文章并非易事。这就产生了一种需求&#xff0c;那就是…

【2024】Datawhale AI夏令营-从零上手Mobile Agent-Task1笔记

Task1主要任务是跑通Mobile-Agent Demo。 一、主要步骤 1、申领大模型API 教程推荐使用阿里云百炼平台&#xff0c;申领个人的大模型API后&#xff0c;可通过API KEY调用平台上的视觉-语言大模型。后续使用的视觉-语言大模型为qwen-vl-plus。 2、下载Android Studio 3、在…

Neo4j导入csv数据,并创建节点

Neo4j 是一种图数据库&#xff0c;特别适合管理和分析复杂的关系数据。 数据来源&#xff1a;http://openkg.cn/ 导入到 Neo4j 的合适场景&#xff1a; 需要在物种分类中查找层级关系&#xff08;如物种的科、属等&#xff09;。 需要进行关系查询和图结构的分析。 想在分类树…

[mysql]mysql的演示使用

1&#xff1a;show databases 这里第一个information_schema代表的是数据库的基本系统信息&#xff0c;数据库名称&#xff0c;表的名称&#xff0c;存储权限 第二个是mysql&#xff0c;保存的是我们数据库运行的时候需要的系统信息&#xff0c;比如数据库文件夹 当前的字库集…

算法笔试-编程练习-H-02-24

w这套题&#xff0c;侧重模拟和题目理解&#xff0c;只要按照题目描述正常复现整体分数应该不错 一、数据重删 数据重删是一种节约存储空间的技术&#xff0c;通常情况下&#xff0c;在数据存储池内是有很多重复的数据库。重删则是将这些重复的数据块找出并处理的技术。简单地…

回溯+记忆搜索——力扣每日一题2024.8.25

给定一个整数数组 nums 和一个正整数 k&#xff0c;找出是否有可能把这个数组分成 k 个非空子集&#xff0c;其总和都相等。 示例 1&#xff1a; 输入&#xff1a; nums [4, 3, 2, 3, 5, 2, 1], k 4 输出&#xff1a; True 说明&#xff1a; 有可能将其分成 4 个子集&#x…

复制会话与复制SSH渠道的区别

文章目录 新建会话时干了什么复制会话的时候干了什么复制SSH渠道的时候干了什么复制会话与复制SSH渠道的区别TIPS&#xff1a;1. /dev/pts/n2. 守护进程 新建会话时干了什么 在第一次启动xshell时&#xff0c;提供了新建会话选项&#xff0c;创建过程如下&#xff1a; 创建SSH…

前端速通面经八股系列(五)—— Vue(上)

Vue系列目录 一、Vue 基础1. Vue的基本原理2. 双向数据绑定的原理3. 使用 Object.defineProperty() 来进行数据劫持有什么缺点&#xff1f;4. MVVM、MVC、MVP的区别5. Computed 和 Watch 的区别6. Computed 和 Methods 的区别7. slot是什么&#xff1f;有什么作用&#xff1f;原…

【Qt】多元素控件QTreeWidget

多元素控件QTreeWidget 使用QTreeWidget表示一个树型结构&#xff0c;里面的每一个元素都是QTreeWidgetItem&#xff0c;每个QTreeWidgetItem可以包含多个文本和图标&#xff0c;每个文本/图标表示一列。 可以给QTreeWidget设置顶层结构&#xff08;顶层节点可以有多个&#…

解放双手全自动铲屎!CEWEY、霍曼、小佩哪款智能猫砂盆更值得?

这马上要到节假日了&#xff0c;回家的话&#xff0c;自己养的猫咪该怎么办呢&#xff1f;如果猫咪的猫砂盆无人照料的话&#xff0c;那么就会导致我们的猫砂盆里全是猫咪的粪便&#xff0c;这些粪便放久了无人清理就会开始散发恶臭&#xff0c;导致家里臭气熏天&#xff0c;最…

【C++对于C语言的扩充】:auto关键字、范围for以及nullptr

文章目录 &#x1f680;auto关键字&#xff08;C11&#xff09;✈️auto介绍✈️auto的使用细则✈️auto不能使用的场景 &#x1f680;范围for&#xff08;C11&#xff09;✈️范围for介绍✈️范围for的使用条件 &#x1f680;指针空值nullptr&#xff08;C11&#xff09; &…

医药行业智能客服机器人的未来发展趋势探析

Hi~这里是ProXiao 文章参考&#xff1a;晓观点 智能客服机器人在医药行业的发展趋势是什么&#xff1f;https://insight.xiaoduoai.com/intelligent-tools/intelligent-customer-service-robot/what-is-the-development-trend-of-intelligent-customer-service-robots-in-the…

极光推送(JPush)赋能登虹科技,打造智慧视觉云平台新体验

近日&#xff0c;中国领先的客户互动和营销科技服务商极光&#xff08;Aurora Mobile&#xff0c;纳斯达克股票代码&#xff1a;JG&#xff09;与杭州登虹科技有限公司&#xff08;以下简称“登虹科技&#xff08;Closeli&#xff09;”&#xff09;达成合作&#xff0c;借助极…

【Threejs学习】Dat.GUI 辅助调参工具

一、介绍 dat.GUI 辅助调参工具&#xff0c;是一个轻量级的图形用户界面库&#xff08;GUI 组件&#xff09;&#xff0c;使用这个库可以很容易地创建出能够改变代码变量的界面组件。 github地址&#xff1a; https://github.com/dataarts/dat.gui 二、使用 1.使用cdn引入 …

基于 SpringBoot+Vue的——陪玩平台

文章目录 前言1.项目类型2.技术栈介绍3.功能介绍4.项目亮点5.适用场景6.项目展示7.诚邀参与 前言 大家好&#xff0c;我是执手天涯&#xff0c;今天非常荣幸地向大家介绍一款备受瞩目的创新项目基于 SpringBootVue的——陪玩平台。这不仅仅是一个游戏社交平台&#xff0c;更是…

算法设计:实验三动态规划法

【实验目的】 应用动态规划算法思想求解矩阵连乘的顺序问题。 【实验要求】 应用动态规划算法的最优子结构性质和子问题重叠性质求解此问题。分析动态规划算法的基本思想&#xff0c;应用动态规划策略写出算法及相应的程序&#xff0c;求解此题。要读懂读透A[i,j]&…

stm32-SD卡实验

1. SD简介 SD卡&#xff0c;Secure Digital Card&#xff0c;称为安全数字卡&#xff08;安全数码卡&#xff09;。 SD卡系列主要有三种&#xff1a;SD卡(full size)、MiniSD卡和MicroSD卡&#xff08;原名 TF卡&#xff09;。 特点&#xff1a;容量大、高安全性、体积小、传…

threejs绘制带箭头的坐标系

效果图&#xff1a; ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9319baf1e01946b8919490704e97532a.pn 实现思路&#xff1a; AxesHelper实现坐标系&#xff0c;但是是没有箭头的&#xff1b;这个对象会显示三个彩色的箭头&#xff0c;这些箭头分别表示x, y, z轴…

Android Studio Koala下载并安装,测试helloworld.

1、下载&#xff1a; 下载 Android Studio 和应用工具 - Android 开发者 | Android Developers 2、滚动条拉到近最后&#xff0c;各个系统的下载地址&#xff1a; 3、下载完成以后&#xff0c;我们双击运行安装&#xff1a; 如果有路径要修改&#xff0c;则修改下就可以了&a…