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。

    目录
    相关文章
    |
    2月前
    |
    人工智能 监控 安全
    当 AI API 进入制造和医疗核心系统:工程侧需要提前考虑什么?
    AI API正从演示工具升级为制造、医疗等核心业务系统的关键组件,但其稳定性、合规性与工程可控性远比模型智能更重要。本文剖析API在高可靠性场景下的三大挑战:稳定性边界、数据责任划分、长期模型演进,并强调应将其视为“不稳定依赖”来设计,确保无AI时系统仍能安全运行。
    |
    2月前
    |
    人工智能 测试技术 开发者
    AI Coding后端开发实战:解锁AI辅助编程新范式
    本文系统阐述了AI时代开发者如何高效协作AI Coding工具,强调破除认知误区、构建个人上下文管理体系,并精准判断AI输出质量。通过实战流程与案例,助力开发者实现从编码到架构思维的跃迁,成为人机协同的“超级开发者”。
    2131 106
    |
    22天前
    |
    运维 监控 网络协议
    Wireshark抓包实战解析:从入门到精通的实用指南
    Wireshark是开源网络协议分析利器,堪称网络“显微镜”:实时抓包、分层解析、精准过滤。支持TCP重传定位、HTTP异常追踪、DNS故障诊断等实战场景,助开发者、运维与安全人员快速定位问题根源,实现从现象到协议层的深度排查。(239字)
    710 1
    |
    2月前
    |
    存储 人工智能 监控
    数据跨境、隐私泄露、审计溯源——出海企业三大安全必答题
    AI 出海刚起步就被罚?阿里云日志服务 SLS 来了! 提供从跨域集中审计、智能数据脱敏到全链路溯源的一站式解决方案,让合规不再是负担,而是全球化竞争的护城河。
    246 22
    |
    2月前
    |
    前端开发 容器
    CSS-Flex布局
    CSS Flex弹性布局是移动端/响应式开发的核心方案,通过「容器+项目」模型实现灵活空间分配与对齐。本文详解核心概念、容器/项目属性,并结合评论框代码实战拆解,助新手快速掌握justify-content、align-items、flex:1等关键用法。(239字)
    376 5
    |
    4月前
    |
    缓存 安全 应用服务中间件
    Nginx 基本使用和高级用法详解
    Nginx 是高性能 Web 服务器,支持反向代理、负载均衡、SSL 加速与静态资源缓存。本文详解其安装配置、虚拟主机、安全加固、限流、日志管理及 Docker 部署,助你构建高可用、高性能的现代 Web 架构。(238 字)
    905 0
    |
    9月前
    |
    人工智能 移动开发 JavaScript
    AI + 低代码技术揭秘(六):包结构和 Monorepo
    VTJ低代码平台采用monorepo结构,基于PNPM和Lerna进行包管理,实现跨包版本同步与依赖管理。核心包如@vtj/base、@vtj/utils和@vtj/core提供基础类型、工具函数及数据模型。运行时包负责DSL解析、渲染和代码生成,设计器支持可视化开发,本地服务实现文件管理和项目构建。平台通过统一构建系统支持Web、UniApp等多端部署。
    392 0
    |
    存储 资源调度
    在 Pinia 中如何实现状态持久化?
    在 Pinia 中如何实现状态持久化?
    2630 57
    |
    12月前
    |
    人工智能 JavaScript Java
    如何在IDEA中借助深度思考模型 QwQ 提高编码效率?
    通义灵码目前已经支持 QwQ-plus 模型,欢迎大家在【智能问答】里,选择切换模型,即可体验更小尺寸、更强性能的新模型!
    482 10

    热门文章

    最新文章