JavaScript入门指南:从零开始掌握网页交互

98 阅读5分钟

引言:为什么JavaScript如此重要?

在当今的互联网世界中,JavaScript已成为最流行的编程语言之一。根据GitHub的年度报告,JavaScript连续多年位居最受欢迎编程语言榜首。无论是简单的网页动画,还是复杂的企业级应用,JavaScript都扮演着不可或缺的角色。

本文将从零开始,带你深入了解JavaScript的方方面面,让你能够快速掌握这门强大的语言,并为未来的Web开发之路打下坚实基础。

第一章:认识JavaScript

1.1 什么是JavaScript?

JavaScript是一种高级的、解释型的编程语言,最初由网景公司的Brendan Eich在1995年开发。与普遍误解不同,JavaScript与Java并无直接关系,之所以命名为JavaScript,主要是当时Java语言非常流行,算是一种营销策略。

JavaScript的核心组成:

  • ECMAScript:语言的核心语法和基本对象
  • DOM(文档对象模型) :处理网页内容的方法和接口
  • BOM(浏览器对象模型) :与浏览器窗口进行交互的方法和接口

bf42507764c81e173e5694aeb24090cd.png

1.2 JavaScript能做什么?

JavaScript的应用范围极其广泛:

客户端应用:

  • 创建动态网页效果,如轮播图、下拉菜单
  • 实现表单验证,提升用户体验
  • 开发单页应用(SPA),如React、Vue、Angular框架应用
  • 制作网页游戏和复杂的数据可视化

服务器端应用:

  • 通过Node.js构建高性能服务器
  • 开发RESTful API
  • 实时通信应用,如聊天室

移动和桌面应用:

  • 使用React Native、Ionic开发移动应用
  • 通过Electron开发桌面应用,如VS Code、Slack

1.3 学习资源推荐

MDN Web Docs(开发者莫扎特)是学习JavaScript最权威、最全面的资源。它由Mozilla维护,提供了详细的文档、教程和示例代码。访问方式简单,只需在浏览器中输入"mdn"即可找到。

除了MDN,还有以下优质资源:

  • freeCodeCamp:免费的交互式编程学习平台
  • JavaScript.info:系统的JavaScript教程
  • Eloquent JavaScript:经典的JavaScript免费电子书

第二章:JavaScript快速体验

让我们通过一个简单示例,快速感受JavaScript的魅力:

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
  .pink {
    background-color: pink;
  }
</style>
</head>
<body>
  <button class="pink">按钮1</button>
  <button>按钮2</button>
  <button>按钮3</button>
  <button>按钮4</button>

  <script>
    let bts = document.querySelectorAll('button')
    for(let i = 0;i<bts.length;i++){
      bts[i].addEventListener('click',function(){
        document.querySelector('.pink').className = ''
        this.className = 'pink'
      })
    }
  </script>
</body>
</html>

这个简单示例展示了JavaScript如何实现与用户的交互:当用户点击按钮时,该按钮会变色,其他按钮不会变色

第三章:JavaScript的书写位置

3.1 内部JavaScript

内部JavaScript指的是将代码直接写在HTML文件中,通常放在<body>标签的底部:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    //页面弹出警示框
    alert('你好')
  </script>
</body>
</html>

写在html的底部是由于我们浏览器会按照代码在文件中的顺序加载 HTML。如果先加载的JavaScript 期望修改其下方的HTML,那么它可能由于 HTML 尚未被加载而失效。因此,将JavaScript代码放在HTML页面的底部附近通常是最好的策略。

3.2 外部JavaScript

外部JavaScript是将代码保存在单独的.js文件中,然后在HTML中通过<script>标签引入。这是实际开发中最推荐的方式。

示例:

HTML文件(index.html):

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
  <script src="./js/my.js">
    // 中间不要写内容,写了也会自动忽略
  </script>
</body>
</html>

JavaScript文件(js/script.js):

javascript

复制下载

// 等待页面加载完成
alert('我是外部js')

外部JavaScript的优势:

  • 代码分离:HTML负责结构,CSS负责样式,JavaScript负责行为
  • 可维护性:代码组织更清晰,易于维护和调试
  • 可复用性:同一个JS文件可以被多个HTML页面引用
  • 缓存优势:浏览器会缓存外部JS文件,提高页面加载速度
  • 团队协作:便于多人协作开发

3.3 行内JavaScript

行内JavaScript是直接将代码写在HTML元素的属性中,这种方式虽然方便,但不推荐在复杂项目中使用。

示例:

html

复制下载运行

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <button onclick="alert('嗨喽')">点我</button>
</body>
</html>

行内JavaScript的优缺点:

  • 优点:简单快速,适合小型演示或原型开发

  • 缺点

    • 代码难以维护和调试
    • 不利于代码复用
    • 违反"关注点分离"原则
    • 不利于搜索引擎优化

3.4 三种方式的比较与选择建议

方式适用场景优点缺点
内部JS小型项目、快速原型简单直接,无需额外文件代码混合,难以维护
外部JS中大型项目、生产环境代码分离,易于维护需要额外HTTP请求
行内JS简单交互、演示快速实现难以维护,不推荐使用

最佳实践建议:

  • 开发环境:使用外部JavaScript文件
  • <script>标签放在</body>结束前
  • 使用DOMContentLoaded事件确保DOM加载完成
  • 避免使用行内JavaScript,除非有特殊需求

第四章:JavaScript输入输出语句

JavaScript提供了多种方式向用户展示信息:

4.1 输出信息到页面

4.2 控制台输出

4.3 接收用户输入

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    //弹框输出
    alert('哈哈');
    
    //文档输出
    document.write('告诉你个事');
    document.write('<h1>我是标题</h1>');

    //控制台输出打印,用于程序员调试,浏览器上看不到
    console.log('这对吗');

    //输入语句
    prompt('请输入你的年龄:');

  </script>
</body>
</html>

今天的学习就到这里了,祝你学习顺利,在JavaScript的世界中探索无限可能!