JavaScript入门

JavaScript 简介

JavaScript 是一种脚本语言,通常用于构建交互性强大的网页。它可以在网页上处理事件、验证表单、修改 HTML 内容、处理数据等等。

基本语法

JavaScript 有自己的语法规则,包括变量、数据类型、运算符、条件语句、循环语句等。让我们从一些基本概念开始:

  1. 变量和数据类型

    JavaScript 变量用于存储数据。JavaScript 有多种数据类型,包括数字、字符串、布尔值、数组、对象等。

    示例:

    var name = "John";
    var age = 30;
    var isStudent = false;
    var fruits = ["apple", "banana", "cherry"];
    var person = { firstName: "John", lastName: "Doe" };
  2. 运算符

    JavaScript 使用运算符执行操作,例如加法、减法、乘法、除法等。

    示例:

    var x = 10;
    var y = 5;
    var sum = x + y; // 15
    var product = x * y; // 50
  3. 条件语句

    条件语句允许根据条件执行不同的代码块。

    示例:

    var age = 18;
    if (age >= 18) {
      console.log("成年人");
    } else {
      console.log("未成年人");
    }
  4. 循环语句

    循环语句用于多次执行代码块。

    示例:

    for (var i = 0; i < 5; i++) {
      console.log("循环次数: " + i);
    }
  5. 函数

    函数是一种可重复使用的代码块。它可以接受参数并返回结果。

    示例:

    function add(a, b) {
      return a + b;
    }
    var result = add(3, 4); // 7
  6. 事件处理

    JavaScript 可用于处理事件,如点击、鼠标移动等。

    示例:

    var button = document.getElementById("myButton");
    button.addEventListener("click", function() {
      alert("按钮被点击了!");
    });

JavaScript 进阶

  1. 对象和面向对象编程

    JavaScript 中的对象是一种数据结构,可以包含属性和方法。对象可以用于模拟现实世界的实体。

    示例:

    var person = {
      firstName: "John",
      lastName: "Doe",
      fullName: function() {
        return this.firstName + " " + this.lastName;
      }
    };
    console.log(person.fullName()); // "John Doe"
  2. 数组和数组方法

    JavaScript 数组是存储多个值的有序列表。它们有许多内置方法,用于操作和转换数据。

    示例:

    var fruits = ["apple", "banana", "cherry"];
    fruits.push("date"); // 添加一个元素
    fruits.pop(); // 删除最后一个元素
    fruits.forEach(function(fruit) {
      console.log(fruit);
    });
  3. 闭包和作用域

    了解 JavaScript 中的闭包和作用域有助于更好地理解变量的生命周期和作用域链。

    示例:

    function outer() {
      var x = 10;
      function inner() {
        console.log(x);
      }
      return inner;
    }
    var closure = outer();
    closure(); // 10
  4. 异步编程和回调函数

JavaScript 是一种单线程语言,但可以使用异步编程和回调函数处理非阻塞操作,如 AJAX 请求和定时器。

示例:
setTimeout(function() {
  console.log("延迟执行的代码");
}, 1000);
  1. Promise 和异步/await
Promise 是一种用于管理异步操作的对象,而异步/await 是处理异步操作的现代方式。

示例:
function fetchData() {
  return new Promise(function(resolve, reject) {
    // 异步操作
    setTimeout(function() {
      resolve("数据已获取");
    }, 2000);
  });
}

async function fetchAndDisplayData() {
  try {
    var data = await fetchData();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

fetchAndDisplayData();
  1. 模块化编程
JavaScript 支持模块化编程,这使得代码更易于维护和扩展。了解 ES6 模块的使用。

示例:
// 模块导出
export function add(a, b) {
  return a + b;
}

// 模块导入
import { add } from "./myModule";
  1. 面向对象编程(OOP)

    深入了解面向对象编程的概念,包括类、对象、继承、封装和多态。

    示例:

    class Animal {
      constructor(name) {
        this.name = name;
      }
    
      speak() {
        console.log(this.name + "发出声音");
      }
    }
    
    class Dog extends Animal {
      constructor(name, breed) {
        super(name);
        this.breed = breed;
      }
    
      speak() {
        console.log(this.name + "是只" + this.breed + "狗,汪汪!");
      }
    }
    
    const myDog = new Dog("巴克", "哈士奇");
    myDog.speak(); // "巴克是只哈士奇狗,汪汪!"
  2. 浏览器事件和DOM 操作

    了解如何使用 JavaScript 操作 HTML 文档,添加事件监听器,以及响应用户交互。

    示例:

    // 添加事件监听器
    document.getElementById("myButton").addEventListener("click", function() {
      alert("按钮被点击了!");
    });
    
    // 修改元素内容
    document.getElementById("myElement").innerHTML = "新内容";
  3. 本地存储和缓存

    使用浏览器提供的本地存储选项(如 localStorage 和 sessionStorage)来存储和检索数据。

    示例:

    // 使用 localStorage 存储数据
    localStorage.setItem("username", "John");
    var username = localStorage.getItem("username");
    
    // 使用 sessionStorage 存储临时数据
    sessionStorage.setItem("tempData", "some value");
  4. 跨域请求和 AJAX

    学习如何使用 AJAX 发送跨域请求,从远程服务器获取数据。

    示例:

    var xhr = new XMLHttpRequest();
    xhr.open("GET", "https://api.example.com/data", true);
    xhr.onload = function() {
      if (xhr.status === 200) {
        var data = JSON.parse(xhr.responseText);
        console.log(data);
      }
    };
    xhr.send();
  5. 前端框架和库

    了解流行的前端框架和库,如 React, Angular, Vue.js,以及如何构建现代单页应用 (SPA)。

    示例:

    // React 组件
    class MyComponent extends React.Component {
      render() {
        return <div>Hello, World!</div>;
      }
    }
  6. 模块化编程

    学习如何将 JavaScript 代码模块化,以便更好地组织和重用代码。了解 CommonJS、ES6 模块等模块系统。

    示例(ES6 模块):

    // math.js
    export function add(a, b) {
      return a + b;
    }
    
    // main.js
    import { add } from './math.js';
    console.log(add(5, 3)); // 8
  7. 异步编程和 Promise

    深入了解异步编程,包括回调函数、Promise 对象,以及 async/await。

    示例(Promise):

    function fetchData() {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve("Data fetched!");
        }, 1000);
      });
    }
    
    fetchData().then(data => {
      console.log(data);
    });
  8. HTTP 请求和 RESTful API

    学习如何使用 JavaScript 发送 HTTP 请求,与 RESTful API 交互,获取和发送数据。

    示例(使用 Fetch API):

    fetch("https://api.example.com/data")
      .then(response => response.json())
      .then(data => {
        console.log(data);
      })
      .catch(error => {
        console.error(error);
      });
  9. 单元测试

    理解单元测试的重要性,学习使用测试框架如 Jest 编写和运行测试用例。

    示例(Jest 测试用例):

    // math.js
    export function add(a, b) {
      return a + b;
    }
    
    // math.test.js
    import { add } from './math.js';
    
    test('adds 1 + 2 to equal 3', () => {
      expect(add(1, 2)).toBe(3);
    });
  10. 工具和构建流程

    了解构建工具如 Webpack 和打包工具如 Babel,以及如何将项目编译成生产代码。

    示例(使用 Webpack 打包):

    // webpack.config.js
    module.exports = {
      entry: './src/index.js',
      output: {
        filename: 'bundle.js',
      },
    };

JavaScript入门
https://www.lihaibao.cn/2023/10/27/JavaScript入门/
Author
Seal Li
Posted on
October 27, 2023
Licensed under