JavaScript变量

JavaScript 变量我们可以把它理解为:

变量 = 一个带名字的盒子,用来存放数据。


1. 什么是变量

例如:

javascript 复制代码
let name = "Tom";

相当于:

复制代码
name ──► "Tom"

这里:

  • name 是变量名
  • "Tom" 是变量值

以后需要这个值时:

javascript 复制代码
console.log(name);

输出:

javascript 复制代码
Tom

2. 声明变量

JS 有三种声明变量的方法:

javascript 复制代码
var
let
const

let(最常用)

javascript 复制代码
let age = 18;

修改:

javascript 复制代码
let age = 18;

age = 20;

console.log(age);

结果:

javascript 复制代码
20

const(常量)

声明后不能重新赋值:

javascript 复制代码
const PI = 3.14;

错误:

javascript 复制代码
const PI = 3.14;

PI = 3.14159;

会报错:

javascript 复制代码
TypeError

3. 变量命名规则

可以

javascript 复制代码
let age;
let userName;
let score1;
let _name;
let $price;

不可以

数字开头:

javascript 复制代码
let 123abc;

错误


包含空格:

javascript 复制代码
let user name;

错误


使用关键字:

javascript 复制代码
let let;
let const;
let if;

错误


4. 变量赋值

声明时赋值

javascript 复制代码
let age = 18;

先声明后赋值

javascript 复制代码
let age;

age = 18;

修改变量

javascript 复制代码
let age = 18;

age = 20;

结果:

javascript 复制代码
20

5. 变量的数据类型

JS 是动态类型语言。

意思:

javascript 复制代码
let x = 10;

后面可以改成:

javascript 复制代码
x = "hello";

完全合法。


Number

数字:

javascript 复制代码
let age = 18;
let price = 99.9;

String

字符串:

javascript 复制代码
let name = "Tom";

或者:

javascript 复制代码
let name = 'Tom';

Boolean

布尔值:

javascript 复制代码
let isLogin = true;
let isAdmin = false;

Undefined

声明但没赋值:

javascript 复制代码
let age;

console.log(age);

结果:

javascript 复制代码
undefined

Null

表示空值:

javascript 复制代码
let user = null;

Object(对象)

最重要的数据类型之一。

javascript 复制代码
let person = {
    name: "Tom",
    age: 18
};
typeof person;

结果:

javascript 复制代码
"object"

数组其实也是对象:

javascript 复制代码
let arr = [1, 2, 3];

typeof arr;

结果:

javascript 复制代码
"object"

Symbol(符号)

用于创建唯一值:

javascript 复制代码
let id = Symbol();
typeof id;

结果:

javascript 复制代码
"symbol"

例如:

javascript 复制代码
let s1 = Symbol();
let s2 = Symbol();
console.log(s1 === s2);

结果:

javascript 复制代码
false

即使长得一样,也永远不相等。

BigInt(大整数)

用于超大整数计算。

普通 Number 最大安全整数:

javascript 复制代码
Number.MAX_SAFE_INTEGER

约等于:

9007199254740991

超过后可能不准确。

javascript 复制代码
BigInt:

let n = 123456789012345678901234567890n;

注意后面的:

javascript 复制代码
n

表示 BigInt。

javascript 复制代码
typeof n;

结果:

"bigint"

6. typeof 查看类型

javascript 复制代码
let age = 18;

console.log(typeof age);

结果:

javascript 复制代码
number

例子:

javascript 复制代码
console.log(typeof 123);
javascript 复制代码
number

javascript 复制代码
console.log(typeof "hello");
javascript 复制代码
string

javascript 复制代码
console.log(typeof true);
javascript 复制代码
boolean

javascript 复制代码
console.log(typeof undefined);
javascript 复制代码
undefined

7. 字符串拼接

传统写法:

javascript 复制代码
let name = "Tom";

console.log("你好 " + name);

结果:

javascript 复制代码
你好 Tom

推荐写法(模板字符串)

javascript 复制代码
let name = "Tom";

console.log(`你好 ${name}`);

结果:

javascript 复制代码
你好 Tom

多个变量:

javascript 复制代码
let name = "Tom";
let age = 18;

console.log(`我叫${name},今年${age}岁`);

结果:

javascript 复制代码
我叫Tom,今年18岁

8. 变量作用域

作用域:

变量在哪里能访问。


全局变量

javascript 复制代码
let name = "Tom";

function test() {
    console.log(name);
}

输出:

javascript 复制代码
Tom

整个程序都能访问。


局部变量

javascript 复制代码
function test() {
    let age = 18;
}

console.log(age);

报错:

javascript 复制代码
ReferenceError

因为:

javascript 复制代码
age

只在函数内部存在。


块级作用域

letconst 有块级作用域。

javascript 复制代码
{
    let age = 18;
}

console.log(age);

报错:

javascript 复制代码
ReferenceError

9. var、let、const 对比

特性 var let const
可修改
可重复声明
块级作用域
推荐程度

例子:

javascript 复制代码
var a = 1;
var a = 2;

合法。


javascript 复制代码
let a = 1;
let a = 2;

报错。


10. 解构赋值

数组:

javascript 复制代码
let arr = [10, 20];

let [a, b] = arr;

console.log(a);
console.log(b);

结果:

javascript 复制代码
10
20

对象:

javascript 复制代码
let user = {
    name: "Tom",
    age: 18
};

let { name, age } = user;

console.log(name);
console.log(age);

结果:

javascript 复制代码
Tom
18
相关推荐
窝子面几秒前
手搓最简前后端协作-node
javascript·数据库
人邮异步社区18 分钟前
怎么把C语言学到精通?
c语言·开发语言
kyriewen43 分钟前
我让AI给前端项目做了一次完整的Code Review——它和人类的差距,比我想的大得多
前端·javascript·ai编程
心平气和量大福大1 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai1 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
এ慕ོ冬℘゜1 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
执明wa1 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
一次旅行1 小时前
Python+大模型端到端自动化日报系统
开发语言·python·自动化
sugar__salt2 小时前
Vue3 表单双向绑定与响应式核心 API 技术详解
前端·javascript·vue.js
噢,我明白了3 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel