• 咨询热线
    0592-5527850
  • 咨询热线
    0592-5527850
  • 咨询热线
    0592-5527850
  • 咨询热线
    0592-5527850
  • 咨询热线
    0592-5527850
  • 咨询热线
    0592-5527850
  • 咨询热线
    0592-5527850
  • 咨询热线
    0592-5527850
报名咨询 0元入学 提供住宿 带薪实习 就业保障 网上报名 咨询热线0592-5527850
经纬盈创
WEB前端培训 > 前端学堂> Web前端开发入门 | JavaScript基础

Web前端开发入门 | JavaScript基础

1

什么是JavaScript?

JavaScript(缩写:JS)是一门成熟的动态编程语言,当应用于HTML文档时,可以在网站上提供动态交互性。它是Mozilla项目联合创始人,Mozilla基金会和Mozilla公司的Brendan Eich发明的。

JavaScript是非常通用的。你可以从简单做起,比如轮播、相册,浮动布局,和按钮点击事件。随着你学习的深入,你可以创建游戏、2d和3d动画、数据库驱动的综合应用程序,以及更多!

JavaScript本身是非常简洁却非常灵活的。开发者们编写了非常多的工具补充

JavaScript语言功能。使得花最小的代价获得大量额外功能。这些功能包括:

    应用编程接口 (APIs) 。内置于浏览器中提供像动态编写 HTML 和 CSS ,抓取操控用户摄像头的数据流和操作3D图像和音频样品。

    第三方 APIs 允许开发者将其他公司网站如 Twitter 或 Facebook 与自己的网站合并功能。

    你可以将第三方框架和库应用于你的HTML,以快速构建网站和应用。

因为这篇文章只是JavaScript的简介, 这个阶段,我们不打算过于详细的介绍JavaScript语言以及前面提及的工具。你可以之后在 JavaScript learning area和MDN的余下课程上学习更多的细节。

下面我们将介绍语言的一些核心部分,你也可以做一些关于浏览器API的练习。

Have fun!

一个 “hello world”示例

上面的内容听起来非常激动人心,而且也应该如此——JavaScript是最让人激动的Web科技之一,而且你对它掌握的越多,你的网页将进入一个更有创造力和更加强大的层次。

然而,JavaScript 比 HTML 和 CSS 学习起来更加复杂,所以你需要一步一步谨慎地跟随我们。首先,我们将向你展示怎么添加一些基本的 JavaScript 脚本到你的页面中来创造一个 “hello world”示例(编程世界的标准示例)。

1 . 首先,去到你的测试目录,创建一个“scripts”文件夹(没有引号)。然后在新建的scripts文件夹下创建一个新的main.js文件。

2 . 接下来,打开你的 index.html 文件,在 </body> 闭合标签之前输入这一行代码:

1 | <script src="scripts/main.js"></script>

1 . 这基本上与引入 CSS 的 <link> 元素功能相同——它将 JavaScript 引入了页面,所以它将影响 HTML (包括 CSS 和其他页面上的任何内容)。 

2 . 现在将下面的代码添加到 main.js 文件中:

1 | var myHeading = document.querySelector('h1');

2 | myHeading.innerHTML = 'Hello world!';

3 . 最后,确保 HTML 和 JavaScript 文件已经保存好,然后用浏览器打开  index.html 。你应该看到如下内容:

2

提示:我们将 <script> 元素放在 HTML 文件底部的原因是,浏览器按照代码在文件中的顺序解析 HTML。如果 JavaScript在最先面被加载,HTML还未加载,JavaScript将无法作用于HTML,所以JavaScript无效,如果 JavaScript 代码出现问题则 HTML 不会被加载。所以将 JavaScript 代码放在底部是最好的选择。

发生了什么?

你的标题通过JavaScript被更改为了“Hello world!”。我们首先使用一个函数querySelector() 来获取标题这个对象,然后将其储存在一个叫 myHeading 的变量中。这与我们 CSS 中的选择符非常相像。如果你想对某个元素进行操作,首先你得先选择它。

在那之后,我们将 myHeading 的属性 innerHTML (代表这个标题的内容)赋予了“Hello world!”这个值。

语言基础速览

来让我们解释一下 JavaScript 这门语言的基本特性,以便让你们更好地了解它是怎么运作的。更棒的是,这些特性对编程语言来说很常见。如果你能够了解这些基础,你应该能更好地在编程的世界里徜徉!

变量(Variables)

Variables 是你存储数据的容器。要声明一个变量你需要使用关键字 var ,然后输入任何你想要的名称:

1 | var myVariable;

定义一个变量之后,你可以赋予它一个值:

1 | myVariable = 'Bob';

你也可以将这些操作写在一行:

1 | var myVariable = 'Bob';

你可以通过变量名称读取变量:

1 | myVariable;

在给变量赋值之后,你可以改变变量的值:

1 | var myVariable = 'Bob';

2 | myVariable = 'Steve';

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

3

那么为什么我们需要变量呢?好吧,在编程时要做任何有趣的事我们必须用到变量。如果值没有改变,那么你将无法动态地做任何事,就像个性化一个祝福短信或是改变在图片库里展示的图片。

注释

你可以在 JavaScript 中添加注释,就像你在 CSS 中做过的一样。

1 | /*

2 | Everything in between is a comment.

3 | */

如果你的注释只有一行,我们经常将它们更简单地放在两个斜杠之后,就像这样:

1 | // This is a comment

运算符

 Operator 运算符是一个根据两个值(或变量)做出结果的代数符号。在下面的表里你可以看到一些最简单的运算符,后面的示例你可以在浏览器控制台里尝试一下。

4

还有很多运算符供我们探索,不过暂时我们只需要这么多。

提示:计算时如果混合几种数据类型可能导致奇怪的结果,所以请谨慎地正确地引用你的变量,然后得出你期望的结果。比如输入 "35" + "25" 到控制台。为什么结果与你想象的不同?因为引号将数字转换成了字符串,所以最终会连接两个字符串而不是相加数字。如果你输入 35 + 25,你会得到正确的结果。

语句

语句是能够让你测试一个表达式是否返回 true 然后根据结果运行不同的代码的结构。最常用的语句形式是 if ... else. 下面是一个例子:

1 | var iceCream = 'chocolate';

2 | if (iceCream === 'chocolate') {

3 |   alert('Yay, I love chocolate ice cream!');

4 |  } else {

5 |   alert('Awwww, but chocolate is my favorite...');

6 |  }

if ( ... ) 里面的表达式就是测试 — 这里使用了运算符(上面所提到的)来比较变量 iceCream 与字符串 chocolate 是否相等。 如果返回 true,运行前面一块的代码。如果返回 false,跳过第一段直接运行 else 之后的代码。

函数

Functions 是一种封装你想重复使用的功能的方法,这样你就可以在任何时候想使用其中的功能就通过函数名称来调用而不用老是重复写下整段代码。你在上面已经见过一些函数了,比如:

1 | var myVariable = document.querySelector('h1');

1 | alert('hello!');

这些函数是浏览器内置的,你可以在任何时候使用。

如果你看到一些东西长得像变量名但是有括号 — () — 在后面,这可能就是一个函数。函数通常包括 arguments — 一些必要的参数。它们在括号内部, 如果有一个以上参数则使用逗号分开。

比如, alert() 函数在浏览器窗口内弹出一个警告框,但是我们需要给参数传入一个字符串以告诉函数应该在警告框里写什么。

好消息是你可以定义你自己的函数 — 在下一个例子里我们会写一个简单的需要两个参数来做乘法运算的函数。

1 |  function multiply(num1,num2) {

2 |   var result = num1 * num2;

3 |   return result;

4 |  }

尝试在控制台运行这个函数,然后自己尝试几次不同的参数,比如:

1 | multiply(4,7);

2 | multiply(20,20);

3 | multiply(0.5,3);

事件

在网页上创建真正的交互,你需要使用事件 — 事件是能够捕捉浏览器操作并且允许你运行代码进行响应的代码结构. 最明显的事件是 点击事件,在鼠标点击什么的时候被浏览器唤醒。 为了演示这个操作,尝试将下面的代码输入到控制台,然后在当前页面点击:

1 | document.querySelector('html').onclick = function() {

2 |     alert('Ouch! Stop poking me!');

3 | }

相当于

1 | var myHTML = document.querySelector('html');

2 | myHTML.onclick = function() {};

只是更加简洁。

改善示例网页

现在我们已经讲述了一点 JavaScript 的基础了,让我们添加一些更酷的特性到示例网页里来看看我们能做什么。

添加一个图像转换器

这一部分我们将添加另一个图片到我们的站点,并且添加简单的 JavaScript 使得单击图片时转换图片。

1 . 首先,找到另一个你想用来装饰你的网页的图片。确保它与你第一张图片尺寸相同,或者尽可能相似。

2 . 将图片保存在 images 文件夹。

3 . 重命名图片为 firefox2.png

4 . 打开 main.js 文件,输入下面的 JavaScript 代码 ( 如果你的 hello world JavaScript 仍然在这,删除它们 ) :

1 | var myImage = document.querySelector('img');

2 | 

3 | myImage.onclick = function() {

4 |    var mySrc = myImage.getAttribute('src');

5 |     if(mySrc === 'images/firefox-icon.png') {

6 |       myImage.setAttribute ('src','images/firefox2.png');

7 |     } else {

8 |       myImage.setAttribute ('src','images/firefox-icon.png');

9 |     }

10| }

保存所有文件然后用浏览器打开 index.html。选择当你点击图片时,它应该会转换成另一张图片!

在这里,我们将 image 元素的引用存放在 myImage 变量里。接下来,我们将这个变量的 onclick 的事件与一个匿名函数绑定。选择,每次图片被点击时:

1 . 我们找到 image 元素的 src 属性

2 . 我们使用一个语句来判断 src 的值是否等于原始图像的路径:

a . 如果是,我们将src 的值改为第二张图片的路径,强制在 <image> 内读取另一张图片。

b . 如果不是(意味着它肯定已经被更改过), 我们把 src 的值重新设置为原始图片的路径,将它返回到原先的样子。

添加个性化的欢迎信息

接下来我们会添加另一段代码,在用户初次进入站点时将网页的标题改成一段个性化的欢迎信息。欢迎信息会持续到用户离开网页。我们还会添加一个选项来在必要的时候改变用户并且改变欢迎信息。

1 . 在 index.html 里, 在 <script> 元素前添加下一行代码:  

1 | <button>Change user</button>

2 . 在 main.js 里,在文件底部添加下面的代码,必须一字不漏 — 这会抓去 按钮 和 标题 的引用并将其存放在变量里:  

1 | var myButton = document.querySelector('button');

2 | var myHeading = document.querySelector('h1');

3 . 现在添加下面的函数来设置个性化内容——这暂时不会起任何作用,不过我们后面会用到:

1 | function setUserName() {

2 | var myName = prompt('Please enter your name.');

3 |   localStorage.setItem('name', myName);

4 |   myHeading.innerHTML = 'Mozilla is cool, ' + myName;

5 | }

函数包含了一个 prompt() 函数, 会弹出一个对话框, 有一点像 alert() 只不过 prompt() 需要用户输入数据,,而且在用户点击 OK 后将数据存储在变量里。在这里,我们要求用户输入姓名。接下来,我们调用一个叫 localStorage 的API, 它允许我们将数据存储在浏览器里以供后续调用。我们使用 localStorage 的 setItem() 函数来创建并将数据存储在 'name'参数里,然后将其值设置为包含用户输入的姓名的 myName 变量。 最后,我们将标题的 innerHTML 属性设置成加上用户姓名的字符串。

4 . 接下来,将 if ... else 块添加进去— 我们将这称作初始化代码,因为它在初次读取时重置了应用程序:  

1 | if(!localStorage.getItem('name')) {

2 |   setUserName();

3 | } else {

4 |   var storedName = localStorage.getItem('name');

5 |   myHeading.innerHTML = 'Mozilla is cool, ' + storedName;

6 | }

这段代码首先用一个非运算符(逻辑非)来检查 name 数据是否存在。如果不存在, setUserName() 函数就会运行来创建它。如果存在(比如用户在之前创建过) 我们通过 getItem()调用存储过的 name 然后将 innerHTML 设置为加上用户姓名的字符串,就像我们在 setUserName()里做的一样。

最后,将下面的 onclick 事件处理器绑定到 按钮 上,这样当我们点击时, setUserName() 函数就会运行。这允许用户在任何想要的时候通过点击按钮来设置新的 name 。

1 | myButton.onclick = function() {

2 |   setUserName();

3 | }

现在当你第一次访问网页是,它将询问你的用户名然后向你发出一段有个性的信息。你可以在任何时候通过点击按钮来改变 name 。告诉你一个额外的福利,因为 name 是存放在 localStorage 里的,它会持续到网站关闭,所以这段个性化的信息在你重新打开浏览器时将仍然在这!


上一篇:Web前端开发入门 | HTML 基础
下一篇:【游戏开发】Unity室内场景+光照练习
相关阅读:
Web前端知识体系精简-----HTML篇 web前端开发者,必须了解的各种build工具! web开发必学的8个网页优化技巧! web前端培训:HTML5技术之Cookie会话跟踪技术 Web前端知识体系精简 前端优化:9 个技巧,提高 Web 性能
IT培训
UI培训 PHP培训 JAVA培训
web前端培训 游戏开发培训
常见问题
最新资讯