Javascript基础知识(1)

一.JavaScript简介

1.什么是JavaScript

JavaScript 最初被创建的目的是“使网页更生动”。

这种编程语言写出来的程序被称为 脚本。它们可以被直接写在网页的 HTML 中,在页面加载的时候自动执行。脚本被以纯文本的形式提供和执行。它们不需要特殊的准备或编译即可运行。

随着 JavaScript 的发展,它已经成为了一门完全独立的语言,并且也拥有了自己的语言规范 ECMAScript。现在,它和 Java 之间没有任何关系。

如今,JavaScript 不仅可以在浏览器中执行,也可以在服务端执行,甚至可以在任意搭载了 JavaScript 引擎 的设备中执行。浏览器中嵌入了 JavaScript 引擎,有时也称作“JavaScript 虚拟机”。

引擎是如何工作的?

引擎很复杂,但是基本原理很简单。

  1. 引擎(如果是浏览器,则引擎被嵌入在其中)读取(“解析”)脚本。
  2. 然后,引擎将脚本转化(“编译”)为机器语言。
  3. 然后,机器代码快速地执行。

引擎会对流程中的每个阶段都进行优化。它甚至可以在编译的脚本运行时监视它,分析流经该脚本的数据,并根据获得的信息进一步优化机器代码。

  • JavaScript 最开始是专门为浏览器设计的一门语言,但是现在也被用于很多其他的环境。
  • JavaScript 作为被应用最广泛的浏览器语言,且与 HTML/CSS 完全集成,具有独特的地位。
  • 有很多其他的语言可以被“编译”成 JavaScript,这些语言还提供了更多的功能。建议最好了解一下这些语言,至少在掌握了 JavaScript 之后大致的了解一下。

二.Javascript基础知识

1.关于<script>标签

如果设置了 src 特性,script 标签内容将会被忽略。

一个单独的 <script> 标签不能同时有 src 特性和内部包裹的代码。

这将不会工作:

<script src="file.js">
  alert(1); // 此内容会被忽略,因为设定了 src
</script>

我们必须进行选择,要么使用外部的 <script src="…">,要么使用正常包裹代码的 <script>

为了让上面的例子工作,我们可以将它分成两个 <script> 标签。

<script src="file.js"></script>
<script>
  alert(1);
</script>

请注意:

一般来说,只有最简单的脚本才嵌入到 HTML 中。更复杂的脚本存放在单独的文件中。

使用独立文件的好处是浏览器会下载它,然后将它保存到浏览器的 缓存 中。

之后,其他页面想要相同的脚本就会从缓存中获取,而不是下载它。所以文件实际上只会下载一次。

这可以节省流量,并使得页面(加载)更快。

  • 我们可以使用一个 <script> 标签将 JavaScript 代码添加到页面中。
  • type 和 language 特性(attribute)不是必需的。
  • 外部的脚本可以通过 <script src="path/to/script.js"></script> 的方式插入。

2.代码结构

(1)语句

alert('Hello, world!') 这样可以用来显示消息的语句。

(2)分号

当存在换行符(line break)时,在大多数情况下可以省略分号。

下面的代码也是可以运行的:

alert('Hello')
alert('World')

在这,JavaScript 将换行符理解成“隐式”的分号。这也被称为 自动分号插入

在大多数情况下,换行意味着一个分号。但是“大多数情况”并不意味着“总是”!

比如:

alert(3 +
1
+ 2);

但存在 JavaScript 无法确定是否真的需要自动插入分号的情况。

例如:

alert("Hello");

[1, 2].forEach(alert);

我们先记住这段代码的运行结果:先显示 Hello,然后显示 1,然后 2

现在,让我们删除 alert 语句后的分号:

alert("Hello")

[1, 2].forEach(alert);

与上面的代码相比只有一个字符的区别:第一行末尾的分号不见了。

如果我们运行这段代码,只有第一个 Hello 会被显示出来(并且有一个报错,你可能需要打开控制台才能看到它)。并且不会再有数字被显示出来。

这是因为,JavaScript 引擎并没有假设在方括号 [...] 前有一个分号。因此,最后一个示例中的代码被视为了单个语句。

对于引擎来说,它是这样的:

alert("Hello")[1, 2].forEach(alert);

我们需要在 alert 后面加一个分号,代码才能正常运行。

(3)注释

单行注释以两个正斜杠字符 // 开始。

多行注释以一个正斜杠和星号开始 “/*” 并以一个星号和正斜杠结束 “*/”

使用快捷键

在大多数的编辑器中,一行代码可以使用 Ctrl+/ 快捷键进行单行注释,诸如 Ctrl+Shift+/ 的快捷键可以进行多行注释(选择代码,然后按下快捷键)。对于 Mac 电脑,应使用 Cmd 而不是 Ctrl,使用 Option 而不是 Shift

不支持注释嵌套

不要在 /*...*/ 内嵌套另一个 /*...*/

下面这段代码报错而无法执行:

/*
  /* 嵌套注释 ?!? */
*/
alert( 'World' );

3.现代模式,"use strict"

当它处于脚本文件的顶部时,则整个脚本文件都将以“现代”模式进行工作。

比如:

"use strict";

// 代码以现代模式工作
...

请确保 "use strict" 出现在脚本的最顶部,否则严格模式可能无法启用。且只有注释可以出现在 "use strict" 的上面。没有类似于 "no use strict" 这样的指令可以使程序返回默认模式。

一旦进入了严格模式,就没有回头路了。

浏览器控制台

当你使用 开发者控制台 运行代码时,请注意它默认是不启动 use strict 的。

在控制台中启用 use strict,你可以尝试搭配使用 Shift+Enter 按键去输入多行代码,然后将 use strict 放在代码最顶部

'use strict'; <Shift+Enter 换行>
//  ...你的代码
<按下 Enter 以运行>

目前我们欢迎将 "use strict"; 写在脚本的顶部。稍后,当你的代码全都写在了 class 和 module 中时,你则可以将 "use strict"; 这行代码省略掉。

  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值