第1章 初识JavaScript

学习目标

  • 了解JavaScript基本概念,能够说出JavaScript的作用、由来、组成和特点

  • 熟悉常见浏览器的特点,能够说出浏览器的组成以及作用

  • 掌握下载和安装Visual Studio Code编辑器,能够独立完成编辑器的下载和安装

  • 掌握JavaScript代码引入方式,能够通过行内式、内嵌式、外链式引入JavaScript代码

  • 掌握JavaScript常用的输入输出语句,并能够灵活运用

  • 掌握JavaScript注释的使用,能够合理运用单行注释、多行注释增强代码的可读性

HTML(Hypertext Markup Language,超文本标记语言)、CSS(Cascading Style Sheets,串联样式表)和JavaScript是开发网页所必备的技术,大家在掌握HTML和CSS技术之后,已经能够编写出各式各样的网页,但若想让网页具有良好的交互性,还要使用JavaScript。本章将介绍JavaScript的基本概念、开发工具和基本使用,让读者对JavaScript有一个初步的认识。

1.1 JavaScript基本概念

1.1.1 JavaScript概述

JavaScript是Web开发领域中的一种功能强大的编程语言,主要用于开发交互式的网页。我们在计算机、手机等设备上浏览的网页,其多数交互逻辑都可以通过JavaScript实现。

HTML结构:决定网页的结构和内容,相当于人的身体

CSS样式:决定网页呈现给用户的模样,相当于人的衣服、妆容

JavaScript行为:实现业务逻辑和页面控制,相当于人的各种动作

JavaScript可以实现哪些常见的交互效果?

轮播图:通过JavaScript实现每隔一段时间自动切换图片的效果。

地图:通过JavaScript实现地图的放大、缩小、滚动等效果。

选项卡:通过JavaScript实现选项卡的切换效果。

表单验证:用户填写表单时,通过JavaScript检查用户填写的格式是否正确,如果格式有误,则提示用户更正。

JavaScript还可以实现网页从服务器动态获取数据,例如,用户在百度搜索引擎网站中进行搜索时,在输入框中输入几个字以后,网页会智能感知用户接下来要搜索的内容。

1.1.2 JavaScript的由来

JavaScript语言和Java语言名称比较相似,这是因为网景公司在为JavaScript命名时,考虑到该公司与Java语言的开发商Sun公司(2009年被Oracle公司收购)的合作关系。但实际上,JavaScript和Java只是名字相似,本质上是完全不同的两种语言。

ECMA国际是一个国际性会员制的信息和电信标准组织,该组织发布了ECMA-262标准文件,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript。JavaScript和JScript可以理解为ECMAScript的实现和扩展。

1.1.3 JavaScript的组成

JavaScript是由ECMAScript、DOM、BOM这3部分组成的。

ECMAScript:规定了JavaScript的编程语法和基础核心内容,是所有浏览器厂商共同遵守的一套JavaScript语法工业标准。

DOM:文档对象模型,是W3C组织制定的用于处理HTML文档和XML文档的编程接口,它提供了对文档的结构化表述,并定义了一种方式使程序可以对该结构进行访问,从而改变文档的结构、样式和内容。

BOM:浏览器对象模型,是一套编程接口,用于对浏览器进行操作,如刷新页面、弹出警告框、控制页面跳转等。

1.1.4 JavaScript的特点

1.2 JavaScript基本使用

1.3.1 JavaScript初体验

本案例需要实现当网页打开时自动弹出一个警告框,警告框的内容为“Hello JavaScript”。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <script>
    alert('Hello JavaScript');
  </script>
</body>
</html>

JavaScript代码严格区分大小写。另外,JavaScript代码对空格、换行、缩进不敏感,一条语句可以分成多行书写。

1.3.2 JavaScript代码引入方式

掌握JavaScript代码引入方式,能够通过行内式、内嵌式、外链式引入JavaScript代码

行内式:行内式是将JavaScript代码作为HTML标签的属性值使用。

<a href="javascript:alert('Hello');">test</a>	

行内式的缺点如下:

可读性较差,尤其是在HTML中编写大量JavaScript代码时,不方便阅读。

在遇到多层引号嵌套的情况时,引号非常容易混淆,导致代码出错。

嵌入式:也称为内嵌式,使用script标签包裹JavaScript代码,直接编写到HTML文件中, 通常将其放到head标签或body标签中。

<script>
  JavaScript代码
</script>

script标签的type属性用于告知浏览器脚本类型, HTML5中该属性的默认值为“text/javascript”,因此在使用HTML5时可以省略type属性。

外链式:或外部式,是将JavaScript代码写在一个单独的文件中,一般使用“.js”作为文件的扩展名,在HTML页面中使用script标签的src属性引入“.js”文件。

外链式适合JavaScript代码量比较多的情况。

外链式相比嵌入式,具有以下3点优势:

外链式存在于独立文件中,有利于修改和维护,而嵌入式会导致HTML与JavaScript代码混合在一起。

外链式可以利用浏览器缓存提高速度。

外链式有利于HTML页面代码结构化,把大段的JavaScript代码分离到HTML页面之外,既美观,也方便文件级别的代码复用。

浏览器执行JavaScript代码时,无论使用嵌入式还是外链式,页面的加载和渲染都会暂停,等待脚本执行完成加载后才会继续。为了尽可能减少对整个页面的影响,建议将不需要提前执行的<script>标签放在<body>标签内的底部位置。

为了减小JavaScript阻塞问题对页面造成的影响,可以使用HTML5为<script>标签新增的两个可选属性async和defer实现异步加载。

所谓异步加载,指的是浏览器在执行加载JavaScript文件时不阻塞页面的加载和渲染。

async用于异步加载,即先下载文件,不阻塞其他代码执行,下载完成后再执行,
示例代码如下。

<script src="file.js" async></script>

defer用于延后执行,即先下载文件,直到网页加载完成后再执行, 示例代码如下。

<script src="file.js" defer></script>

Example02.js

alert('Hello JavaScript');

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <script src="Example02.js"></script>
</body>
</html>

1.3.3 常用输入输出语句

常用输入输出语句

类型语句描述
输入prompt()用于在浏览器中弹出输入框,用户可以输入内容
输出alert()用于在浏览器中弹出警告框
document.write()用于在网页中输出内容
console.log()用于在控制台中输出信息

document.write()的输出内容中如果含有HTML标签,会被浏览器解析。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <script>
    document.write('我是document.write()语句!');
  </script>
</body>
</html>

console.log()的输出结果需要在浏览器的控制台中查看。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <script>
    console.log('我是console.log()语句!');
  </script>
</body>
</html>

在Chrome浏览器中按F12键(或在网页空白区域右击,在弹出的菜单中选择“检查”)启动开发者工具。

切换到“Console”(控制台)面板,即可看到控制台的输出结果。

利用prompt()语句可以实现在页面中弹出一个带有提示信息的输入框。

 

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <script>
    str=prompt('请输入姓名:');
    alert(str);
  </script>
</body>
</html>

若输出的内容中包含JavaScript结束标签,需要使用“\”对结束标签的“/”进行转义,即“<\/script>”。

document.write('<script>alert(123);<\/script>');

在浏览器控制台中执行代码的步骤:

(1)首先进入控制台,从控制台中可以看到一个闪烁的光标,此时可以输入代码。

(2)按下回车键,即可看到JavaScript代码的运行结果。

1.3.4 JavaScript注释

使用注释可以增强代码的可读性。

JavaScript中注释的分类如下:

单行注释:以“//”开始,到该行结束之前的内容都是注释。

多行注释:以“/”开始,以“/”结束。多行注释中可以嵌套单行注释,但不能再嵌套多行注释。

本章小结

本章首先介绍了什么是JavaScript,以及JavaScript的用途、由来、组成和特点,然后讲解了浏览器和代码编辑器相关的内容,最后讲解了JavaScript的基本使用,包括JavaScript初体验、JavaScript引入方式、常用输入输出语句和JavaScript注释。希望读者通过本章的学习,掌握JavaScript的基础知识,能够编写简单的JavaScript程序。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows电脑无法睡眠解决办法

原因 电脑无法休眠的原因&#xff0c;是打开离开模式策略后&#xff0c;windows内核会持续调用CPU资源&#xff0c;导致系统一直在运行而无法关闭。关闭后就好了。 解决步骤 修改注册表 操作步骤如下: 按winR&#xff0c;输入regedit&#xff0c;打开注册表编辑页面。输入如下…

第11章 GUI Page462~476 步骤二十三,二十四,二十五 Undo/Redo ③实现“Undo/Redo”菜单项

工程六 添加“编辑”菜单和子菜单 菜单ID分别为 idMenuEditUndo 和 idMenuEditRedo 热键&#xff08;快捷键&#xff09;分别为CtrlZ 和 CtrlShiftZ 变量名分别为 MenuItemEditUndo 和 MenuItemEditRedo 分别添加事件 ActionLink类增加成员函数 运行效果&#xff1a;“添加…

Docker安装WebRTC下TURN服务

详细实现方式以及代码下载请前往 https://www.passerma.com/article/90 实现效果 一、手动构建镜像 1.新建Dockerfile文件 文件用于编译镜像 以alpine为基础镜像 添加coturn需要的依赖库 获取coturn并进行编译 通过start.sh启动turnserver服务 Dockerfile FROM alpineRUN ap…

AI与5G、IDC等成为数字经济的重要基础设施

AI与5G、IDC等已经成为数字经济的重要基础设施&#xff0c;它们的影响和作用不容忽视。随着技术的迅速发展&#xff0c;AI在各行各业都得到了广泛应用&#xff0c;并成为数字经济的核心驱动力之一。 首先&#xff0c;AI的兴起为数字经济带来了巨大的机遇。AI技术可以帮助企业从…

Vue2商品规格选择

Vue2Element-ui Vu2仿写拼多多商家后台规则选择&#xff0c;为什么用Vue2呢&#xff0c;因为公司用的Vue2... 样式不是很好看&#xff0c;自己调一下就行。 <template><div ref"inputContainer"><div>{{ combinationsResult }}</div><…

案例099:基于微信小程序的外卖小程序的研究与开发

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

在Gitee上维护Erpnext源

在Gitee上维护Erpnext源 官方的frappe和erpnext地址: GitHub - frappe/frappe: Low code web framework for real world applications, in Python and Javascript GitHub - frappe/erpnext: Free and Open Source Enterprise Resource Planning (ERP) 1, 仓库地址输入frappe的官…

R 批量对多个变量进行单因素方差分析 批量计算均值±标准差

多个变量批量进行单因素方差 R实现 文章目录 一、批量生成均值标准差 P值二、添加协变量单因素方差分析&#xff0c;生成校正P值三、在分层情况下进行单因素方差分析四、添加协变量和交互项的单因素方差分析&#xff0c;生成交互项的P值 一、批量生成均值标准差 P值 数据结构如…

pyfolio工具结合backtrader分析量化策略组合,附源码+问题分析

pyfolio可以分析backtrader的策略&#xff0c;并生成一系列好看的图表&#xff0c;但是由于pyfolio直接install的稳定版有缺陷&#xff0c;开发版也存在诸多问题&#xff0c;使用的依赖版本都偏低&#xff0c;试用了一下之后还是更推荐quantstats。 1、安装依赖 pip install …

【STM32】STM32学习笔记-TIM输出比较(15)

00. 目录 文章目录 00. 目录01. 输出比较简介02. PWM简介03. 输出比较通道(高级)04. 输出比较通道(通用)05. 输出比较模式06. PWM基本结构07. PWM参数计算08. 舵机简介09. 舵机硬件电路10. 直流电机及驱动简介11. 直流电机硬件电路12. 附录 01. 输出比较简介 OC&#xff08;Ou…

ASP.NET可视化流程设计器源码

源码介绍: ASP.NET可视化流程设计器源码已应用于众多大型企事业单位。拥有全浏览器兼容的可视化流程设计器、表单设计器、基于角色的权限管理等系统开发必须功能&#xff0c;大大为您节省开发时间&#xff0c;是您开发OA.CRM、HR等企事业各种应用管理系统和工作流系统的最佳基…

Redis高级特性和应用(慢查询、Pipeline、事务、Lua)

Redis的慢查询 许多存储系统(例如 MySQL)提供慢查询日志帮助开发和运维人员定位系统存在的慢操作。所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息(例如:发生时间,耗时,命令的详细信息)记录下来,Redis也提供了类似…

【开源】基于JAVA语言的服装店库存管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 服装档案模块2.4 服装入库模块2.5 服装出库模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 服装档案表3.2.3 服装入库表3.2.4 服装出库表 四、系统展示五、核心代码5.…

梦想家内容管理系统(Dreamer CMS)跨站请求伪造漏洞

梦想家内容管理系统&#xff08;Dreamer CMS&#xff09;跨站请求伪造漏洞 目标:GitHub - iteachyou-wjn/dreamer_cms: Dreamer CMS 梦想家内容发布系统采用流行的SpringBoot搭建&#xff0c;支持静态化、标签化建站。不需要专业的后台开发技能&#xff0c;会HTML就能建站&…

java数据结构与算法刷题-----LeetCode63. 不同路径 II

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 很多人觉得动态规划很难&#xff0c;但它就是固定套路而已。其实动态规划只…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -后端鉴权拦截器实现

锋哥原创的uniapp微信小程序投票系统实战&#xff1a; uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

【GitHub】-design-pattern-extend(设计模式扩展)

写在前面 偶然间看到一篇文章 《Java 中保持扩展性的几种套路和实现》&#xff0c;写的不错&#xff0c;但是类图画的差了点儿意思。于是&#xff0c;自己动手画了画&#xff0c;对其中的内容作了一些调整&#xff0c;对包做了进一步划分&#xff0c;便于理解消化。以下是对Git…

C++ Qt开发:Charts与数据库组件联动

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍Charts组件与QSql数据库组件的常用方法及灵活…

【STM32】STM32学习笔记-定时器定时中断 定时器外部时钟(14)

00. 目录 文章目录 00. 目录01. 定时器中断相关API1.1 TIM_InternalClockConfig1.2 TIM_TimeBaseInit1.3 TIM_TimeBaseInitTypeDef1.4 TIM_ClearFlag1.5 TIM_ITConfig1.6 TIM_Cmd1.7 中断服务函数1.8 TIM_ETRClockMode2Config 02. 定时器定时中断接线图03. 定时器定时中断示例0…

嵌入式项目——平衡小车(1)

焊接 驱动板需要焊接的如上图。 陀螺仪8pin排母电机两路排线插口。(个别同学需要焊接)两个电池仓,注意电池仓分正反。 安装 底部电池板 4个 双通尼龙柱M3*224个 尼龙螺钉M3*6电机驱动板