JavaScript 教程「1」:与君初相识
什么是 JavaScript
作为世界上最流行的语言之一,是一种运行在客户端的脚本语言。而所谓脚本语言,就是不需要编译就能运行的编程语言,JavaScript 在运行过程中通过 JS 解释器来逐行解释然后执行。
JavaScript 能做什么?
最初的时候,JavaScript 被设计出来的初衷是为了实现表单的动态校验,比如密码长度校验、邮箱格式校验等。但渐渐随着 JavaScript 的发展,JavaScript 变得越来越强大,也发展出了许多产物,如 Node.js
、Electron
、Cordova
、Ruff
、cocos2d-js
。利用这些产物,我们可以用来进行服务器的开发、桌面程序的搭建、APP 的开发、硬件-物联网的控制、游戏开发等等工作。
HTML、CSS、JavaScript 之间的关系
HTML 和 CSS 不同于 JavaScript,它们都是描述类语言,其中 HTML 主要用于决定网页结构和内容(决定网页上能看到什么),而 CSS 则主要用于定义网页所呈现给用户的模样(决定网页是否美观)。JavaScript 则是专注于实现业务逻辑和页面控制(决定网页提供的功能)。
如果把这三者比作一个王者荣耀中的英雄的话,那 HTML 就相当于原皮的英雄,而 CSS 则是相当于英雄的皮肤,让我们的英雄更帅气,而 JavaScript 则相当于英雄的技能,我们可以通过控制英雄通过技能来实现杀敌清兵的效果。
浏览器如何执行 JavaScript
JavaScript 一般运行在网页中的,所以一般是在浏览器中运行。而浏览器一般分为两部分,一个是渲染引擎,另一个则是 JS 引擎,两者的功能如下:
- 渲染引擎:用于解析 HTML 和 CSS 代码,大家一般把它叫做内核,比如 Chrome 浏览器的 Blink,Firefox 浏览器的 Gecko。
- JavaScript 引擎:也叫做 JavaScript 解释器,主要用于读取网页中的 JavaScript 代码,然后对其处理用执行,如 Chrome 浏览器的 V8,Firefox 的 TraceMonkey。
所以名义上虽然说是浏览器执行了 JavaScript 代码,但如果看底层的话,却会发现其实 JavaScript 代码是通过浏览器中的 JavaScript 引擎来执行的。JavaScript 引擎在执行代码时会逐行解释源代码,将其转换为机器语言,然后交由计算机执行。也正因为如此,所以将 JavaScript 划分为脚本语言,它会逐行去解释执行,而不是像 HTML、CSS 类似的标记语言。
JavaScript 的组成
- ECMAScript
ECMAScript 是由 ECMA 国际进行标准化的一门编程语言,往往被大家称为 JavaScript 或者 JScript,但实际上并不是一个东西,后两者其实是基于 ECMAScript 的实现和扩展。其中,JavaScript 是由网景公司所提出,而 JScript 则是由微软公司所提出。 所以 ECMAScript 更像是一种规范,它规定了 JavaScript 的编程语法和基础核心知识,然后所有的浏览器厂商都需要共同遵守这一套 JavaScript 语法工业标准。
- DOM
DOM(Document Object Model)即文档对象模型,是由 W3C 组织推荐的用于处理可扩展标记语言的标准编程接口。通过 DOM 所提供的各种接口,我们就能够轻易地对网页上的各种元素进行操作,如调整位置、大小、颜色等。
BOM
BOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容,能够与浏览器进行交互的对象结构。通过使用 BOM,我们就能够十分方便的操作浏览器窗口,如弹出提示框、控制跳转、获取分辨率等操作。
JavaScript 入门体验
JavaScript 的书写位置主要有 3 种,分别是行内式、内嵌式和外部式,以下就分别来看看各种方式的写法。
- 行内式
首先是行内式,顾名思义,所谓行内式,就是将少量的 JavaScript 代码直接写在 HTML 标签的时间属性中,比如下面的代码。通过点击页面中的按钮,页面就会弹窗。
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1"><title>JavaScript 入门体验</title></head><body><input type="button" value="楚子航" onclick="alert('路明非')"/></body>
</html>
行内式的特点就是比较简单,但是也存在很多问题。比如可读性较差,如果需要在 HTML 编写大量 JavaScript 代码时,此时阅读就很不方便。除此之外,JavaScript 和 HTML 中都会使用到引号,如果出现多层引号相互嵌套时,会非常容易混淆,导致代码实现结果出错。所以除非特殊情况,否则一般不推荐使用行内式。
- 内嵌式
相比于单行式,内嵌式就更加清晰明了。我们通过将 JavaScript 代码封装到 <script>
标签中,然后就可以实现简单的弹窗功能了。内嵌式的代码可读性更高,也更方便纠错。
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1"><title>JavaScript 入门体验</title><script>alert("罗罗诺亚.索隆")</script></head><body></body>
</html>
- 外部式
最后一种就是外部式,通过在外部新建一个后缀名为 .js
的文件,然后将 JavaScript 直接写到该文件中,最后在 HTML 页面中通过 <script>
标签的 src
属性引入即可。
外部式的优点是很明显的:
- 首先,可读性提高。JavaScript 代码量较大时,通过放在独立的文件中,排除了 HTML 和 CSS 元素的干扰。
- 其次,代码复用率提高。假设我们其他业务需要同样的功能,我们只需要将封装好的
.js
文件引用过去即可使用。
alert("手塚国光")
<!DOCTYPE html>
<html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1"><title>JavaScript 入门体验</title><script src="js/my.js"></script></head><body></body>
</html>
总结
本文主要从 JavaScript 的组成定义,功能使用,同 HTML 与CSS 之间的关系以及最简单的入门体验几个方面,对 JavaScript 做了一个简单的介绍。如果你也是刚学习 JavaScript 的新手,那就一起学起来吧。
JavaScript 教程「1」:与君初相识相关推荐
- JavaScript 教程「2」:注释、输入输出、变量
注释 为了提高代码的可读性,我们往往需要在代码中添加一些额外的信息,但是我们又不想让这些信息影响到代码的执行.这时候,我们就需要使用到注释.JavaScript 中,主要有两种注释,一种是单行注释,另 ...
- JavaScript 教程「3」:数据类型
导读 初步了解 JavaScript 之后,我们又学习了注释.输入输出以及变量的相关知识.本文紧接上两部分,来继续带领大家学习 JavaScript 中的数据类型知识,本文主要内容如下: 数据类型简介 ...
- JavaScript 教程「9」:DOM 元素获取、属性修改
什么是 Web API Web API 是指网页服务器或者网页浏览器的应用程序接口.简单来讲,就是我们在编写 JavaScript 代码时,可以通过 Web API 来操作 HTML 网页和浏览器. ...
- JavaScript 教程「6」:数组
什么是数组 之前的学习中,如果我们要存储一个值,一般都是通过变量来存储.但如果我们现在想要存储一系列的值,又该如何存储呢,你可能会说可以用多个变量来进行存储.这种方法也可以,但如果你想,一旦值过多,那 ...
- 开源教程 「nlp-tutorial」!用百行代码搞定各类NLP模型
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 参与:思源.贾伟 来源:机器之心 NLP 的研究,从词嵌入到 CNN ...
- Microsoft Excel 教程「3」:如何在 Excel 中打印工作表?
欢迎观看 Microsoft Excel 教程,小编带大家学习 Microsoft Excel 的使用技巧,了解如何在 Excel 中打印工作表. 可打印全部或部分工作表,可一次打印一个,也可一次打印 ...
- Microsoft Word 教程「4」,如何在 Word 中应用样式、主题?
欢迎观看 Microsoft Word 教程,今天学习的是 Microsoft Word 的使用技巧,了解如何在 Word 中应用样式.主题. 样式使文档具有风格一致的专业外观. 选择要设置格式的文本 ...
- Ps 初学者教程「34」如何使用魔棒工具选择单独的区域?
欢迎观看Photoshop教程,小编带大家了解如何使用「魔棒工具」来根据颜色选择区域. 如果点击工具栏中的「快速选择工具」会发现另一个自动选择工具 「魔棒工具」. 「快速选择工具」在大多数情况下都非常 ...
- Microsoft Word 教程「6」,如何在 Word 中插入艺术字?
欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中插入艺术字. 创建和更改艺术字,如果想让文本在页面上引人注目,可以使用艺 ...
最新文章
- Visual Studio 2010构建Web浏“.NET研究”览器应用程序
- 20145228《Java程序设计》课程总结
- Android清除缓存功能来实现
- python except用法和作用_121个问题答对80%那么恭喜你,Python的高薪工作迟早有你一份...
- Packet Tracer 通过配置静态路由实现不同网段之间的通信(详细步骤)
- 计算机管理也无法运行,【两种解决方法】任务管理器打不开怎么办?
- 输入 vscode_【Python技术入门2】Python集成开发环境VSCode搭建
- C++:获取图片文件信息-图片名称、类型、像素宽高
- JSR-330 依赖注入
- android 距离设置多少dp核实,【Android学习】android布局中几个距离单位的区别:px、dp、sp...
- 用dockers实现mysql主从同步
- 数据框的合并排序、描述统计、分箱
- 系统策略禁止安装此设备。请与系统管理员联系-解决方案
- 服务器多开虚拟,个人服务器多开虚拟主机
- Pandas库的使用教程,每个程序都配图,两万字保姆教学轻松学会
- 10月25日 c语言 读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*
- HTML + CSS + JS做一个绘画分享网站[开源项目]
- 使用shui文件夹遇到问题总结
- 2021春 算法复习
- 年纪轻轻竟脱发?头发到底该如何挽回?
热门文章
- 数据采集系统有哪几种采集方式?
- 汇承金融科技:开创多渠道资产与资金撮合融资服务模式
- fragment android:onclick,Android Fragment的布局中使用android:onClick 属性时需要注意的问题...
- 打工人息息相关的个税计算
- C#发送ZPL控制斑马Zebra打印机源码
- 高端装备的AC主轴头结构
- Camera:前后闪光灯
- NFA转变为DFA的子集构造法
- 输入一个整数n,统计1-n之间的奇数和。你有几种办法实现?
- Unity 获取Android手机返回键Home按键信息