HLJ 发布于
2025-05-22 15:49:33
0阅读

JavaScript基础语法与数据类型详解

JavaScript 是一种动态类型、弱类型的脚本语言,其语法灵活且易于上手。以下是 JavaScript 的基础语法与数据类型的核心内容:


一、基础语法

  1. 变量声明

    • var:传统变量声明(存在变量提升和函数作用域)。
    • let(ES6+):块级作用域变量,可重新赋值。
    • const(ES6+):块级作用域常量,声明后不可重新赋值。
      let age = 25;
      const PI = 3.14;
      
  2. 注释

    • 单行注释:// 这是注释
    • 多行注释:/* 多行注释 */
  3. 语句结束符

    • 分号 ; 可选,但建议显式添加以避免意外错误。
  4. 区分大小写

    • 变量名 myVarmyvar 不同。

二、数据类型

JavaScript 数据类型分为 原始类型(Primitive)引用类型(Reference)

1. 原始类型(按值传递)

  • **number**:整数、浮点数、NaN(非数字)、Infinity

    let num = 42;
    let price = 9.99;
    let result = 10 / "abc"; // NaN
    
  • **string**:文本,用单引号 '' 或双引号 "" 包裹。

    let name = "Alice";
    let msg = 'Hello, ${name}!'; // 模板字符串需用反引号 ``
    
  • **boolean**:truefalse

    let isStudent = true;
    
  • **null**:表示“空值”,需显式赋值。

    let empty = null;
    
  • **undefined**:变量声明未赋值时的默认值。

    let x;
    console.log(x); // undefined
    
  • **symbol**(ES6+):唯一且不可变的值,用于对象属性键。

    const id = Symbol("unique_id");
    
  • **bigint**(ES2020+):表示大整数,后缀加 n

    const bigNum = 123456789012345678901234567890n;
    

2. 引用类型(按引用传递)

  • **object**:键值对的集合。

    let person = { name: "Bob", age: 30 };
    
  • **array**:有序数据集合。

    let colors = ["red", "green", "blue"];
    
  • **function**:可执行代码块。

    function greet(name) {
      return `Hello, ${name}!`;
    }
    

三、类型转换

1. 隐式转换

  • 字符串与数字相加时,数字转为字符串:
    console.log("5" + 1); // "51"
    
  • 非数值字符串转数字为 NaN
    console.log("abc" - 1); // NaN
    

2. 显式转换

  • 使用 Number(), String(), Boolean() 函数:
    let str = "123";
    let num = Number(str); // 123
    let bool = Boolean(0); // false
    

四、类型检测

  1. **typeof**:检测原始类型(注意 null 返回 "object")。

    typeof "hello"; // "string"
    typeof null;    // "object"(历史遗留问题)
    
  2. **instanceof**:检测引用类型(如数组、对象)。

    [] instanceof Array;  // true
    {} instanceof Object; // true
    
  3. **Array.isArray()**:专用于检测数组。

    Array.isArray([]); // true
    

五、注意事项

  1. 动态类型:变量类型可动态改变。

    let a = 10;    // number
    a = "hello";   // string
    
  2. 假值(Falsy)false, 0, "", null, undefined, NaN 在布尔上下文中视为 false

  3. **== vs ===**:推荐使用严格相等 ===(不进行类型转换)。


掌握这些基础后,可以进一步学习函数、作用域、对象原型等进阶内容。

当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2025-05-22/724.html
最后生成于 2025-06-05 15:00:48
此内容有帮助 ?
0