JavaScript入门

简介: JavaScript入门

一、引入方式

嵌入式

嵌入式就是使用<script>标签包裹JavaScript代码,直接编写到HTML文件中。

QQ截图20220210124216.png

QQ截图20220210114926.png
 

type属性用于告知浏览器脚本的类型。

type默认值为text/javascript(HTML5),可以省略type属性。
 

外链式

外链式是指将JavaScript代码保存到一个单独的文件中,通常使用“js”作为文件的扩展名,然后使用<script>标签的src属性引入文件中。

QQ截图20220210115341.png

相对路径

QQ截图20220210123307.png

 

绝对路径

QQ截图20220210123343.png

 

URL地址

QQ截图20220210123435.png

 
若自动使用当前页面协议,可写为 //js.test/file.js

 

相比嵌入式,外链式的优势可以总结为以下3点:

① 嵌入式会导致HTML与JavaScript代码混合在一起,不利用修改和维护。

② 嵌入式会增加HTML文件的体积,影响网页本身的加载速度,而外链式可以利用浏览器缓存 提高速度。

③ 外链式有利于分布式部署。网页中链接的js、css、图片等静态文件可以部署到CDN服务器 上,利用CDN的优势加快下载速度。

 

行内式

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

用法一

QQ截图20220210123655.png

 

用法二

QQ截图20220210123705.png

 

注意

由于现代网页开发提倡结构、样式、行为的分离,即分离HTML、CSS、JavaScript三部分的代码,避免直接写在HTML标签的属性中,从而更有利于维护。因此在实际开发中不推荐使用行内式。

 

JavaScript异步加载

存在的问题:引入JavaScript代码时,页面的下载和渲染都会暂停,等待脚本执行完成后才会继续(内嵌式或外链式)。

解决的办法1:对于不需要提前执行的代码,将<script>标签放在<body>标签的底部,可以减少对整个页面下载的影响。

解决的办法2:可用HTML5为<script>标签新增的两个可选属性:async和defer。

QQ截图20220210123933.png

  • async异步加载,即先下载文件,不阻塞其他代码执行,下载完成后再执行。
  • defer用于延后执行,即先下载文件,直到网页加载完成后再执行。
  • 共同点:即使文件下载失败,也不会阻塞后面的JavaScript代码执行。

 

二、常用输出语句

QQ截图20220210124035.png

QQ截图20220210124045.png

QQ截图20220210124053.png

 

三、注释

概念:注释可便于代码的可读性,在程序解析时会被JavaScript解释器忽略。

分类:单行注释、多行注释。

表示方式:单行注释使用“//”、多行注释使用“/  /”。

 

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

QQ截图20220210124216.png

多行注释:多行注释以“/”开始,以“/”结束,它们之间的内容为多行注释。

QQ截图20220210124255.png

  • 多行注释中可以嵌套单行注释。
  • 多行注释中不能再嵌套多行注释。

 

四、数据与运算

数学运算

  • JavaScript支持加(+)减(-)乘(*)除(/)四则运算。
  • 小括号可以改变优先顺序。

QQ截图20220210124439.png

 

比较两个数字的大小

  • 比较的结果是true或false,这是一种布尔类型的值,表示真和假。
  • 如果比较结果为true,表示成立;如果比较结果为false,表示不成立。

QQ截图20220210124629.png

 

使用字符串保存数据

  • 当需要在警告框中输出“Hello”时,为了在代码中保存“Hello”这个数据,就需要用到字符串这种数据类型。
  • 在JavaScript中,使用单引号或双引号包裹的数据是字符串。

QQ截图20220210135304.png

 
 

比较两个字符串是否相同

使用“==”运算符可以比较两个字符串是否相同。

QQ截图20220210135355.png

 

字符串与数字的拼接

  • “+”运算符的操作数只要有一个是字符串,就表示字符串拼接。
  • “+”运算符的操作数全部为数字时,表示相加。

QQ截图20220210135454.png

 

根据比较结果执行不同的代码

if…else语句用于需要根据比较的结果,来执行不同的代码。

QQ截图20220210135548.png

 

使用变量保存数据

场景:当一个数据需要多次使用时,可以利用变量将数据保存起来。

概念:变量是保存数据的容器,每一个变量都有唯一的名称。

定义:利用var关键字定义。

QQ截图20220210135700.png

 

五、函数

函数的用途

提出问题:代码量增多,维护困难、条理不清、阅读困难。

解决办法:代码应该模块化、组件化,才能更好的维护。

实现方式:常将一些常用的功能模块编写成函数,通过调用函数来完成任务。

举例说明:alert()就是一个函数。

函数执行后可返回一个表示执行结果的值,下面以prompt()函数为例进行演示。

QQ截图20220210135912.png

 

函数的参数

函数支持传入一个或多个参数,多个参数可使用逗号分隔。

QQ截图20220210140031.png

 
 

自定义函数

除直接调用JavaScript内置的函数,用户还可自己定义函数,用于封装代码。

QQ截图20220210140121.png

 

 

六、对象

window对象

window对象是JavaScript与浏览器之间交互的主要接入点。

提供了用于JavaScript脚本控制浏览器的一些接口。

举例:弹出警告框、输入框,或者更改网页文档内容等效果。

QQ截图20220210140350.png

 

document对象

document对象是window对象的属性之一,主要用于与网页文档进行交互。

QQ截图20220210140432.png

 
 

String对象

  • 在代码中直接定义的字符串,就可以作为对象来使用。
  • String对象用于对字符串进行处理。

QQ截图20220210140543.png

 

自定义对象

除了直接使用JavaScript中的内置对象,用户也可以自己创建一个自定义对象。

QQ截图20220210140634.png

QQ截图20220210140725.png

<br/>

七、事件

概念 :事件是指可以被JavaScript侦测到的交互行为。

举例:在网页中滑动、点击鼠标,滚动屏幕,敲击键盘等。

用处:当发生事件以后,可以利用JavaScript编程来执行一些特定的代码,从而实现网页的交互效果。

QQ截图20220210140821.png

 

 

八、【案例】改变网页背景色

代码实现思路:

  1. 编写网页,提供按钮。
  2. 为按钮添加点击事件。
  3. 根据color()函数传递的不同参数设置网页的背景色。
  4. 编写color()函数并进行测试。

 

QQ截图20220210141033.png

 

代码实现

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>改变网页背景色</title>
    <script>
    function color(str) {
    document.body.style.backgroundColor = str;
    }
    </script>
    </head>
    <body>
    <input type="button" value="设为红色" onclick="color('red')">
    <input type="button" value="设为黄色" onclick="color('yellow')">
    <input type="button" value="设为蓝色" onclick="color('blue')">
    <input type="button" value="设为自定义颜色" onclick="color('#00ff00')">
    </body>
    </html>

九、动手实践

验证用户输入的密码

本案例用于验证用户输入的密码是否正确。

代码实现思路:

① 通过输入框获取用户输入的密码。

② 判断用户输入的密码。

③ 若输入正确,则提示“密码输入正确!”,否则提示“密码输入错误!”。

请小伙伴们自己动手试一试!

相关文章
|
2月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
457 2
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
1月前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
31 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
1月前
|
监控 前端开发 JavaScript
React 静态网站生成工具 Next.js 入门指南
【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
79 10
|
1月前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
3月前
|
JavaScript 前端开发 小程序
一小时入门Vue.js前端开发
本文是作者关于Vue.js前端开发的快速入门教程,包括结果展示、参考链接、注意事项以及常见问题的解决方法。文章提供了Vue.js的基础使用介绍,如何安装和使用cnpm,以及如何解决命令行中遇到的一些常见问题。
一小时入门Vue.js前端开发
|
2月前
|
存储 JavaScript 前端开发
前端开发:Vue.js入门与实战
【10月更文挑战第9天】前端开发:Vue.js入门与实战
|
2月前
|
自然语言处理 JavaScript 前端开发
JavaScript高级——ES6基础入门
JavaScript高级——ES6基础入门
27 1
|
2月前
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
553 1
|
2月前
|
Web App开发 JSON JavaScript
深入浅出:Node.js后端开发入门与实践
【10月更文挑战第4天】在这个数字信息爆炸的时代,了解如何构建一个高效、稳定的后端系统对于开发者来说至关重要。本文将引导你步入Node.js的世界,通过浅显易懂的语言和逐步深入的内容组织,让你不仅理解Node.js的基本概念,还能掌握如何使用它来构建一个简单的后端服务。从安装Node.js到实现一个“Hello World”程序,再到处理HTTP请求,文章将带你一步步走进Node.js的大门。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开一扇通往后端开发新世界的大门。