当前位置: 首页 > news >正文

一分钟学会JavaScript 变量

引言

JavaScript 作为前端开发的核心语言之一,对于初学者来说,掌握变量和数据类型是迈向编程之路的重要一步。在这篇博客中,我们将以简单易懂的方式介绍 JavaScript 中的变量声明。

在 JavaScript 中,我们使用不同的关键字来声明变量,常见的有 varlet 和 const,它们各自有不同的特点和使用场景。

1. var

var 是 ES5 中声明变量的方式,它存在变量提升的特性。变量提升意味着你可以在变量声明之前访问它,不过此时变量的值为 undefined

// 变量提升示例
console.log(name); // 输出: undefined
var name = 'John';
console.log(name); // 输出: John

在上面的代码中,虽然 name 变量在 console.log 之后才声明,但由于变量提升,第一次 console.log 不会报错,而是输出 undefined

var 还有一个特点是它的作用域是函数作用域。也就是说,在函数内部声明的 var 变量,只能在该函数内部访问。

function example() {
    if (true) {
        var age = 20;
    }
    console.log(age); // 输出: 20
}
example();

这里的 age 变量虽然是在 if 语句块中声明的,但由于 var 的函数作用域特性,在 if 语句块外部仍然可以访问。

2. let

let 是 ES6 引入的声明变量的方式,它解决了 var 存在的一些问题。let 没有变量提升,并且它的作用域是块级作用域,即 {} 内的代码块。

// 没有变量提升
// console.log(city); // 报错: ReferenceError: city is not defined
let city = 'New York';
console.log(city); // 输出: New York

// 块级作用域示例
{
    let country = 'USA';
    console.log(country); // 输出: USA
}
// console.log(country); // 报错: ReferenceError: country is not defined

let 允许变量重新赋值。

let number = 10;
number = 20;
console.log(number); // 输出: 20

3. const

const 同样是 ES6 引入的,用于声明常量。一旦使用 const 声明并赋值,该常量的值就不能再修改。

const PI = 3.14;
// PI = 3.1415; // 报错: TypeError: Assignment to constant variable.
console.log(PI); // 输出: 3.14

需要注意的是,const 声明的常量必须在声明时就赋值,否则会报错。而且,对于引用类型(如对象和数组),虽然常量本身不能重新赋值,但可以修改其内部的属性或元素。

const person = { name: 'Alice', age: 25 };
person.age = 26;
console.log(person.age); // 输出: 26

const numbers = [1, 2, 3];
numbers.push(4);
console.log(numbers); // 输出: [1, 2, 3, 4]

相关文章:

  • vxe-table实现动态列
  • 2025年度福建省职业院校技能大赛高职组“信息安全管理与评估”赛项规程
  • [c++]--类和对象
  • 【uniapp*vue3】app/h5 webview通讯方案
  • UE5中按钮圆角,设置边框
  • Redis使用手册
  • 使用Hardhat实现ERC20 代币合约详解
  • 通俗易懂的DOM事件模型指南
  • 数据结构:哈希表(unordered_map)
  • 1.13作业
  • 人工智能之自动驾驶技术体系
  • 大学本科教务系统设计方案,涵盖需求分析、架构设计、核心模块和技术实现要点
  • 长尾关键词优化三步法:提升SEO搜索排名实战
  • MATLAB | 设置滑动窗口计算栅格数据的CV变异系数
  • MySQL数据库表约束详解
  • 一些时间方法
  • python入门 介绍及变量的使用
  • 低代码与开发框架的一些整合[2]
  • Error: error:0308010C:digital envelope routines::unsupported
  • My Metronome for Mac v1.4.2 我的节拍器 支持M、Intel芯片
  • 美国与卡塔尔签署超2435亿美元经济及军事合作协议
  • 为何选择上海?两家外企提到营商环境、人才资源……
  • 知名猎头公司创始人兼首席执行官庄华因突发疾病逝世,享年62岁
  • 专访|茸主:杀回UFC,只为给自己一个交代
  • A股三大股指涨跌互现:银行股领涨,两市成交12915亿元
  • A股三大股指集体高开