前端之JavaScript | 青训营笔记

70 阅读7分钟

这是我参与「第四届青训营」笔记创作活动的第4天

今天我们来学习一下前端三件套的最后一件JavaScript

一、了解JavaScript

JavaScript(缩写:JS)是一门完备的 动态编程语言。当应用于 HTML 文档时,可为网站提供动态交互特性。由布兰登·艾克(Brendan Eich,Mozilla 项目、Mozilla 基金会和 Mozilla 公司的联合创始人)发明。

JavaScript 的应用场合极其广泛,简单到幻灯片、照片库、浮动布局和响应按钮点击,复杂到游戏、2D/3D 动画、大型数据库驱动程序等等。

JavaScript 相当简洁,却非常灵活。开发者们基于 JavaScript 核心编写了大量实用工具,可以使 开发工作事半功倍。其中包括:

  • 浏览器应用程序接口(API)—— 浏览器内置的 API 提供了丰富的功能,比如:动态创建 HTML 和设置 CSS 样式、从用户的摄像头采集处理视频流、生成 3D 图像与音频样本等等。
  • 第三方 API —— 让开发者可以在自己的站点中整合其它内容提供者(Twitter、Facebook 等)提供的功能。
  • 第三方框架和库 —— 用来快速构建网站和应用。

二、JavaScript快速入门

变量(Variable)

变量 (en-US) 是存储值的容器。要声明一个变量,先输入关键字 let 或 var,然后输入合适的名称:

let myVariable;

注意:行末由分号结束,变量名对大小写敏感,以及varlet的区别

定义变量后进行赋值:

myVariable = '李雷';

赋值后可以进行更改:

let myVariable = '李雷';
myVariable = '韩梅梅';

注意变量可以有不同的 数据类型 

注释

使用/* */进行注释 ,如果是单行的话可以使用双斜杠//

/*
这里的所有内容
都是注释。
*/


// 这是一条注释。

运算符

运算符 (en-US) 是一类数学符号,可以根据两个值(或变量)产生结果。

运算符解释符号示例
将两个数字相加,或拼接两个字符串。+6 + 9; "Hello " + "world!";
减、乘、除这些运算符操作与基础算术一致。只是乘法写作星号,除法写作斜杠。-*/9 - 3; 8 * 2; //乘法在JS中是一个星号 9 / 3;
赋值运算符为变量赋值(你之前已经见过这个符号了)=let myVariable = '李雷';
等于测试两个值是否相等,并返回一个 true/false (布尔)值。===let myVariable = 3; myVariable === 4; // false
不等于和等于运算符相反,测试两个值是否不相等,并返回一个 true/false (布尔)值。!==let myVariable = 3; myVariable !== 3; // false
取非返回逻辑相反的值,比如当前值为真,则返回 false!原式为真,但经取非后值为 falselet myVariable = 3; !(myVariable === 3); // false

条件语句

条件语句是一种代码结构,用来测试表达式的真假,并根据测试结果运行不同的代码。一个常用的条件语句是 if ... else。这里的返回值函数,使用的是alert() ,该函数在浏览器窗口内弹出一个警告框,还应为其提供一个字符串参数,以告诉它警告框里要显示的内容

let iceCream = 'chocolate';
if (iceCream === 'chocolate') {
  alert('我最喜欢巧克力冰激淋了。');
} else {
  alert('但是巧克力才是我的最爱呀……');
}

函数 Function

函数 用来封装可复用的功能。如果没有函数,一段特定的操作过程用几次就要重复写几次,而使用函数则只需写下函数名和一些简短的信息。 比如之前的document.querySelector 和 alert 就是浏览器内置的函数,随时可用。

定义自己的函数:只需使用关键字functon即可,返回值用return表示

function multiply(num1, num2) {
  let result = num1 * num2;
  return result;
}

事件

事件能为网页添加真实的交互能力。它可以捕捉浏览器操作并运行一些代码做为响应。最简单的事件是 点击事件,鼠标的点击操作会触发该事件。

可尝试将下面的代码输入到控制台,然后点击页面的任意位置:

document.querySelector('html').onclick = function() {
    alert('别戳我,我怕疼。');
}

将事件与元素绑定有许多方法。在这里选用了 <html> 元素,把一个匿名函数(就是没有命名的函数,这里的匿名函数包含单击鼠标时要运行的代码)赋值给了 html 的 onclick (en-US) 属性。

匿名函数

匿名函数没有名字,这里把匿名函数赋值给了onclick

document.querySelector('html').onclick = function() {};

或者等价写法

let myHTML = document.querySelector('html');
myHTML.onclick = function() {};

还有另一种箭头的写法:使用 () => 代替 function ()

document.querySelector('html').addEventListener('click', () => {
  alert('别戳我,我怕疼。');
});

三、JavaScript的作用

API

JavaScript 语言核心之上所构建的功能更令人兴奋。应用程序接口(Application Programming InterfacesAPI))将为你的代码提供额外的超能力。

API 是已经建立好的一套代码组件,可以让开发者实现原本很难甚至无法实现的程序。就像现成的家具套件之于家居建设,用一些已经切好的木板组装一个书柜,显然比自己设计,寻找合适的木材,裁切至合适的尺寸和形状,找到正确尺寸的螺钉,再组装成书柜要简单得多。

浏览器 API 内建于 web 浏览器中,它们可以将数据从周边计算机环境中筛选出来,还可以做实用的复杂工作。例如:

第三方 API 并没有默认嵌入浏览器中,一般要从网上取得它们的代码和信息。

运行次序

当浏览器执行到一段 JavaScript 代码时,通常会按从上往下的顺序执行这段代码。这意味着你需要注意代码书写的顺序

作为程序员,你或许听说过这两个术语:解释( interpret) 和 编译 (compile) 。在解释型语言中,代码自上而下运行,且实时返回运行结果。代码在由浏览器执行前,不需要将其转化为其他形式。代码将直接以文本格式(text form)被接收和处理。

相对的,编译型语言需要先将代码转化(编译)成另一种形式才能运行。比如 C/C++ 先被编译成汇编语言,然后才能由计算机运行。程序将以二进制的格式运行,这些二进制内容是由程序源代码产生的。JavaScript 是轻量级解释型语言。浏览器接受到 JavaScript 代码,并以代码自身的文本格式运行它。技术上,几乎所有 JavaScript 转换器都运用了一种叫做即时编译(just-in-time compiling)的技术;当 JavaScript 源代码被执行时,它会被编译成二进制的格式,使代码运行速度更快。

四、使用JavaScript

内部 JavaScript

可以像添加 CSS 那样将 JavaScript 添加到 HTML 页面中。CSS 使用 <link> 元素链接外部样式表,使用 <style> 元素向 HTML 嵌入内部样式表,JavaScript 这里只需一个元素——<script>。 在 </head> 标签结束前插入以下代码:

<script>
  // 在此编写 JavaScript 代码
</script>

外部 JavaScript

创建一个main.js文件,将 <script> 元素替换为:

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