JS基础

JavaScript 的基本语法是掌握前端开发的一个重要步骤。以下是关于这些基础知识的详细讲解,以及每一部分的示例。

变量

JavaScript 中有三种主要的变量声明方式:varletconst。了解它们的区别以及适用场景是非常重要的。

  • var: 是最早用于 JavaScript 中的变量声明方法。它的作用域是函数作用域,或者全局作用域。在块作用域中声明与不在块作用域声明无异。

    javascript 复制代码
    function example() {
        if (true) {
            var x = 5;
        }
        console.log(x);  // 输出 5
    }
    example();
  • let : 是 ES6 引入的一种声明变量的方法。它的作用域是块作用域,也就是说,只在 let 被定义的 {} 内有效。

    javascript 复制代码
    function example() {
        if (true) {
            let x = 5;
            console.log(x);  // 输出 5
        }
        console.log(x);  // 报错,变量 x 未定义
    }
    example();
  • const: 用于声明常量,一旦赋值后不能再更改。同样是块作用域。

    javascript 复制代码
    const y = 10;
    console.log(y); // 输出 10
    
    y = 20; // 报错,无法重新赋值给常量

控制结构

  • 条件语句 : 包括 if...elseswitch

    javascript 复制代码
    let num = 10;
    
    if (num > 0) {
        console.log("Positive number");
    } else {
        console.log("Non-positive number");
    }
    
    let fruit = "apple";
    
    switch (fruit) {
        case "banana":
            console.log("This is a banana.");
            break;
        case "apple":
            console.log("This is an apple.");
            break;
        default:
            console.log("Fruit not found.");
    }
  • 循环 : 包括 forwhiledo...while

    javascript 复制代码
    // for循环
    for (let i = 0; i < 5; i++) {
        console.log(i);
    }
    
    // while循环
    let i = 0;
    while (i < 5) {
        console.log(i);
        i++;
    }
    
    // do...while循环
    i = 0;
    do {
        console.log(i);
        i++;
    } while (i < 5);

函数

JavaScript 支持多种定义函数的方式。

  • 普通函数:

    javascript 复制代码
    function add(a, b) {
        return a + b;
    }
    
    console.log(add(2, 3));  // 输出 5
  • 匿名函数: 通常作为回调函数使用。

    javascript 复制代码
    const anonymous = function(a, b) {
        return a + b;
    };
    
    console.log(anonymous(2, 3));  // 输出 5
  • 立即执行函数(IIFE):

    javascript 复制代码
    (function() {
        console.log("This is an IIFE");
    })();
  • 箭头函数 (ES6):

    javascript 复制代码
    const multiply = (a, b) => a * b;
    console.log(multiply(2, 3)); // 输出 6

对象

  • 创建对象: 包括字面量方式和构造函数方式。

    javascript 复制代码
    // 字面量方式
    const person = {
        name: "John",
        age: 30,
        greet: function() {
            console.log("Hello, " + this.name);
        }
    };
    person.greet();
    
    // 构造函数方式
    function Person(name='Jame', age) {
        this.name = 'name-'+name;
        this.age = 'age-'+age;
    }
    const person1 = new Person("Alice", 25);
    console.log(person1.name)
  • 访问和修改属性:

    javascript 复制代码
    console.log(person.name);  // 输出 "John"
    person.age = 35;
    console.log(person.age);   // 输出 35

数组

  • 数组操作:

    javascript 复制代码
    const fruits = ["apple", "banana", "cherry"];
    
    // 添加元素
    fruits.push("date");
    console.log(fruits); // ["apple", "banana", "cherry", "date"]
    
    // 删除元素
    fruits.pop();
    console.log(fruits); // ["apple", "banana", "cherry"]
    
    // 遍历数组
    fruits.forEach((fruit) => console.log(fruit));
  • 常用数组方法:

    • map: 创建一个新数组,其结果是对原数组中的每个元素调用一个提供的函数后返回的结果。

      javascript 复制代码
      const numbers = [1, 2, 3, 4];
      const doubled = numbers.map(number => number * 2);
      console.log(doubled); // [2, 4, 6, 8]
    • filter: 创建一个新数组,包含所有通过测试的元素。

      javascript 复制代码
      const evens = numbers.filter(number => number % 2 === 0);
      console.log(evens); // [2, 4]
    • reduce: 对数组包含的每个值应用一个函数,将其归并为单个值。

      javascript 复制代码
      const sum = numbers.reduce((total, number) => total + number, 0);
      console.log(sum); // 10
相关推荐
祈澈菇凉2 小时前
Webpack的基本功能有哪些
前端·javascript·vue.js
小纯洁w2 小时前
Webpack 的 require.context 和 Vite 的 import.meta.glob 的详细介绍和使用
前端·webpack·node.js
想睡好3 小时前
css文本属性
前端·css
qianmoQ3 小时前
第三章:组件开发实战 - 第五节 - Tailwind CSS 响应式导航栏实现
前端·css
zhoupenghui1683 小时前
golang时间相关函数总结
服务器·前端·golang·time
White graces3 小时前
正则表达式效验邮箱格式, 手机号格式, 密码长度
前端·spring boot·spring·正则表达式·java-ee·maven·intellij-idea
庸俗今天不摸鱼3 小时前
Canvas进阶-4、边界检测(流光,鼠标拖尾)
开发语言·前端·javascript·计算机外设
bubusa~>_<4 小时前
解决npm install 出现error,比如:ERR_SSL_CIPHER_OPERATION_FAILED
前端·npm·node.js
流烟默4 小时前
vue和微信小程序处理markdown格式数据
前端·vue.js·微信小程序
梨落秋溪、5 小时前
输入框元素覆盖冲突
java·服务器·前端