JavaScript的变量

简介: JavaScript是一门弱类型、解释执行的脚本语言,核心用于网页交互与前端逻辑,亦可通过Node.js开发后端。入门需掌握变量(let/const)、数据类型、运算符、条件循环、函数及DOM操作,强调块级作用域与动态类型特性。(239字)

一、JS 是什么?核心定位
JavaScript 是一门解释型、弱类型、面向对象的脚本语言,主要用于:
网页交互(如按钮点击、表单验证、动态修改页面内容);
前端逻辑处理(数据计算、条件判断、循环遍历);
也可通过 Node.js 做后端开发。
二、JS 基础语法(核心必学)

  1. 运行方式(新手入门)
    方式 1:嵌入 HTML(最常用)
    html
    预览
    <!DOCTYPE html>

方式 2:外部文件引入(项目开发规范) 创建 index.js 文件,写入代码: javascript 运行 console.log("外部JS文件"); 在 HTML 中引入: html 预览
  • 变量与数据类型
    JS 是弱类型语言,变量类型由赋值决定,常用声明关键字:
    关键字 作用 示例
    let 块级作用域变量(推荐) let age = 18;
    const 常量(值不可改) const PI = 3.14;
    var 旧版声明(不推荐) var name = "张三";
    核心数据类型:
    javascript
    运行
    // 1. 基本类型
    let num = 20; // 数字(Number):整数/小数都算
    let str = "JS基础"; // 字符串(String):单/双引号包裹
    let bool = true; // 布尔值(Boolean):true/false
    let empty = null; // 空值:表示无值
    let undef; // 未定义:变量声明但未赋值
  • // 2. 引用类型(后续进阶)
    let arr = [1, 2, 3]; // 数组
    let obj = {name: "张三", age: 18}; // 对象

    1. 运算符(和 Java 类似,新增细节)
      javascript
      运行
      // 算术运算符
      let a = 10, b = 3;
      console.log(a + b); // 13(加)
      console.log(a / b); // 3.333...(除,JS除法不会取整)
      console.log(a % b); // 1(取余)

    // 赋值运算符
    let c = 5;
    c += 2; // 等价于 c = c + 2 → 7

    // 比较运算符(重点:== 与 ===)
    console.log(18 == "18"); // true(只比值,自动转换类型)
    console.log(18 === "18"); // false(值+类型都要相等,推荐用===)

    // 逻辑运算符
    console.log(true && false); // false(与)
    console.log(true || false); // true(或)
    console.log(!true); // false(非)

    1. 条件判断
      javascript
      运行
      // if-else(最常用)
      let score = 85;
      if (score >= 90) {
      console.log("优秀");
      } else if (score >= 60) {
      console.log("及格");
      } else {
      console.log("不及格");
      }

    // 三元运算符(简化if-else)
    let result = score >= 60 ? "及格" : "不及格";
    console.log(result); // 及格

    1. 循环
      javascript
      运行
      // for 循环(遍历/重复执行)
      for (let i = 1; i <= 5; i++) {
      console.log(i); // 输出1-5
      }

    // while 循环
    let j = 1;
    while (j <= 5) {
    console.log(j);
    j++;
    }

    // forEach(数组专用,常用)
    let arr = [10, 20, 30];
    arr.forEach(function(item) {
    console.log(item); // 依次输出10、20、30
    });

    1. 函数(核心)
      javascript
      运行
      // 方式1:函数声明(最常用)
      function add(a, b) {
      return a + b; // 返回值
      }
      let sum = add(3, 5);
      console.log(sum); // 8

    // 方式2:箭头函数(ES6 新增,简化写法)
    const multiply = (a, b) => a b;
    console.log(multiply(2, 4)); // 8
    三、JS 核心特性(和 Java 区别)
    弱类型:变量类型可动态改变,如 let x = 10; x = "JS"; 合法;
    解释执行:无需编译,浏览器逐行解析运行;
    DOM 操作(JS 独有,网页交互核心):
    javascript
    运行
    // 获取页面元素并修改内容
    document.getElementById("title").innerText = "JS基础学习";
    // 给按钮绑定点击事件
    document.getElementById("btn").onclick = function() {
    alert("按钮被点击了!");
    };
    四、新手必练小案例(巩固基础)
    javascript
    运行
    // 案例1:计算BMI(对应你之前的Java需求)
    let weight = prompt("请输入体重(kg)"); // 弹窗输入
    let height = prompt("请输入身高(m)");
    let bmi = weight / (height
    height);
    // 保留2位小数
    bmi = bmi.toFixed(2);
    let status;
    if (bmi < 18.5) {
    status = "体重过低";
    } else if (bmi < 25) {
    status = "正常";
    } else if (bmi < 30) {
    status = "超重";
    } else {
    status = "肥胖";
    }
    alert(你的BMI值是${bmi},评估结果:${status});
    总结
    JS 核心基础:变量 / 数据类型、运算符、条件判断、循环、函数 是入门必掌握的核心;
    关键区别:和 Java 比,JS 是弱类型、解释执行,且独有 DOM 操作能力;
    练习重点:先写简单逻辑(如计算、判断),再尝试网页交互(按钮点击、弹窗)。
    如果想针对性学习某部分(比如数组、对象、DOM 操作),或者想做某个具体小案例,我可以帮你拆解讲解~
    JavaScript的变量
    你想深入了解 JavaScript 的变量相关知识,我会从变量声明方式、作用域、数据类型、核心特性四个维度,用新手易懂的方式讲清楚,搭配对比和示例,帮你彻底掌握 JS 变量的核心逻辑。
    一、变量的核心:3 种声明方式(重点区分)
    JS 中有 var、let、const 三种声明变量的关键字,其中 let/const 是 ES6 新增的,也是现在开发的主流用法,三者的核心区别如下:
    声明关键字 作用域 变量提升 重复声明 能否修改值 适用场景
    var 函数级作用域 有 允许 能 旧版代码(不推荐使用)
    let 块级作用域 无 禁止 能 需修改的变量(推荐)
    const 块级作用域 无 禁止 基本类型不能改;引用类型可改内部值 常量 / 无需修改的变量(推荐)

    1. let(最常用)
      javascript
      运行
      // 块级作用域:只在 {} 内生效
      if (true) {
      let age = 18;
      console.log(age); // 18(块内可访问)
      }
      console.log(age); // 报错:age is not defined(块外不可访问)

    // 禁止重复声明
    let name = "张三";
    // let name = "李四"; // 报错:Identifier 'name' has already been declared

    // 可以修改值
    let score = 80;
    score = 90;
    console.log(score); // 90

    1. const(声明常量)
      javascript
      运行
      // 基本类型:值不可改
      const PI = 3.14;
      // PI = 3.1415; // 报错:Assignment to constant variable.

    // 引用类型(数组/对象):地址不可改,但内部值可改
    const arr = [1, 2, 3];
    arr.push(4); // 合法,数组内部值修改
    console.log(arr); // [1,2,3,4]

    const person = { name: "张三" };
    person.name = "李四"; // 合法,对象属性修改
    console.log(person); // {name: "李四"}

    // person = { age: 18 }; // 报错:地址不能改

    1. var(不推荐,了解即可)
      javascript
      运行
      // 函数级作用域:if/for 的 {} 不限制作用域
      if (true) {
      var num = 10;
      }
      console.log(num); // 10(块外仍可访问,易出bug)

    // 变量提升:声明会被提升到作用域顶部,赋值不提升
    console.log(x); // undefined(不会报错)
    var x = 5;

    // 允许重复声明
    var a = 1;
    var a = 2;
    console.log(a); // 2(无报错,但易混淆)
    二、变量的命名规则(必须遵守)
    只能以 ** 字母、下划线 (_)、美元符号 (















    线


    区分大小写(age 和 Age 是两个不同变量);
    不能使用 JS 关键字 / 保留字(如 let、const、if、function 等);
    建议语义化命名(见名知意),多个单词用小驼峰(如 userName)。
    ✅ 合法命名:
    javascript
    运行
    let userName = "张三";
    let _score = 95;
    let $price = 99;
    let age18 = 18;
    ❌ 非法命名:
    javascript
    运行
    // let 18age = 18; // 数字开头
    // let user-name = "李四"; // 包含减号
    // let let = 10; // 使用关键字
    三、变量的数据类型(动态类型特性)
    JS 是弱类型 / 动态类型语言:变量的类型由赋值决定,且可以随时改变。
    javascript
    运行
    // 同一变量可切换类型
    let x = 10; // 数字类型
    x = "JavaScript"; // 字符串类型
    x = true; // 布尔类型
    x = [1, 2, 3]; // 数组类型

    // 查看变量类型:typeof 运算符
    console.log(typeof x); // "object"(数组的typeof返回object,是JS的小坑)
    console.log(typeof "hello"); // "string"
    console.log(typeof 20); // "number"
    console.log(typeof undefined); // "undefined"
    console.log(typeof null); // "object"(历史遗留bug,记住即可)
    四、新手常见误区
    混淆 let/const 的修改规则:
    const 限制的是「变量指向的地址」,不是「值本身」,所以数组 / 对象内部值可改;
    基本类型(数字、字符串、布尔)存在栈内存,值直接存储,所以 const 声明后不可改。
    变量提升陷阱:
    避免用 var,改用 let/const 可杜绝变量提升导致的逻辑错误;
    即使是 let/const,也建议「先声明,后使用」。
    未声明直接赋值:
    javascript
    运行
    // 不推荐:未声明直接赋值,会变成全局变量(易污染)
    num = 10;
    console.log(num); // 10(但严格模式下会报错)
    总结
    声明变量优先用 let(需修改值)和 const(无需修改值),彻底放弃 var;
    const 不是 “绝对常量”:基本类型值不可改,引用类型可改内部值;
    变量命名遵守语义化 + 语法规则,动态类型特性让 JS 变量更灵活,但也需注意类型混乱问题;
    块级作用域(let/const)是 ES6 的核心改进,能大幅减少变量作用域相关的 bug。

    目录
    相关文章
    |
    8天前
    |
    JSON API 数据格式
    OpenCode入门使用教程
    本教程介绍如何通过安装OpenCode并配置Canopy Wave API来使用开源模型。首先全局安装OpenCode,然后设置API密钥并创建配置文件,最后在控制台中连接模型并开始交互。
    3684 8
    |
    4天前
    |
    人工智能 API 开发者
    Claude Code 国内保姆级使用指南:实测 GLM-4.7 与 Claude Opus 4.5 全方案解
    Claude Code是Anthropic推出的编程AI代理工具。2026年国内开发者可通过配置`ANTHROPIC_BASE_URL`实现本地化接入:①极速平替——用Qwen Code v0.5.0或GLM-4.7,毫秒响应,适合日常编码;②满血原版——经灵芽API中转调用Claude Opus 4.5,胜任复杂架构与深度推理。
    |
    14天前
    |
    人工智能 JavaScript Linux
    【Claude Code 全攻略】终端AI编程助手从入门到进阶(2026最新版)
    Claude Code是Anthropic推出的终端原生AI编程助手,支持40+语言、200k超长上下文,无需切换IDE即可实现代码生成、调试、项目导航与自动化任务。本文详解其安装配置、四大核心功能及进阶技巧,助你全面提升开发效率,搭配GitHub Copilot使用更佳。
    |
    16天前
    |
    存储 人工智能 自然语言处理
    OpenSpec技术规范+实例应用
    OpenSpec 是面向 AI 智能体的轻量级规范驱动开发框架,通过“提案-审查-实施-归档”工作流,解决 AI 编程中的需求偏移与不可预测性问题。它以机器可读的规范为“单一真相源”,将模糊提示转化为可落地的工程实践,助力开发者高效构建稳定、可审计的生产级系统,实现从“凭感觉聊天”到“按规范开发”的跃迁。
    2374 18
    |
    8天前
    |
    人工智能 前端开发 Docker
    Huobao Drama 开源短剧生成平台:从剧本到视频
    Huobao Drama 是一个基于 Go + Vue3 的开源 AI 短剧自动化生成平台,支持剧本解析、角色与分镜生成、图生视频及剪辑合成,覆盖短剧生产全链路。内置角色管理、分镜设计、视频合成、任务追踪等功能,支持本地部署与多模型接入(如 OpenAI、Ollama、火山等),搭配 FFmpeg 实现高效视频处理,适用于短剧工作流验证与自建 AI 创作后台。
    1230 5
    |
    7天前
    |
    人工智能 运维 前端开发
    Claude Code 30k+ star官方插件,小白也能写专业级代码
    Superpowers是Claude Code官方插件,由核心开发者Jesse打造,上线3个月获3万star。它集成brainstorming、TDD、系统化调试等专业开发流程,让AI写代码更规范高效。开源免费,安装简单,实测显著提升开发质量与效率,值得开发者尝试。
    |
    3天前
    |
    人工智能 前端开发 安全
    Claude Code这周这波更新有点猛,一次性给你讲清楚
    Claude Code 2.1.19重磅更新:7天连发8版!npm安装已弃用,全面转向更安全稳定的原生安装(brew/curl/WinGet等)。新增bash历史补全、自定义快捷键、任务依赖追踪、搜索过滤等功能,并修复内存泄漏、崩溃及多项安全漏洞。老用户建议尽快迁移。
    |
    18天前
    |
    人工智能 测试技术 开发者
    AI Coding后端开发实战:解锁AI辅助编程新范式
    本文系统阐述了AI时代开发者如何高效协作AI Coding工具,强调破除认知误区、构建个人上下文管理体系,并精准判断AI输出质量。通过实战流程与案例,助力开发者实现从编码到架构思维的跃迁,成为人机协同的“超级开发者”。
    1381 106