JavaScript——字面量和变量

本文详细介绍了JavaScript中的各种字面量类型,包括数字、字符串、undefined和布尔值,并探讨了不同进制数字字面量的表示方法及转换过程。此外,还深入讲解了变量的定义、使用规范及作用域特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 字面量

字面量:固定的值,字面是什么含义就表示什么

分类:

  • ① 数字字面量:数字不用双引号包裹

  • ② 字符串字面量

  • ③ undefined

  • ④ 布尔值(true / false)

1.1 数字字面量

数字字面量:

  • 整数

  • 浮点数

  • 特殊值(Infinity 和 NaN)

1.1.1 整数:
  • 十进制(0-9): 不需要书写前缀 在console面板输出结果和参与数学运算时都是十进制
  • 八进制(0-7): 前缀0 , 0o , 0O 逢8进一
  • 十六进制(0-16):前缀0x,0X 逢16进一
    0-9 A - 10 B - 11 C - 12 D - 13 E - 14 F - 15

进制之间转换:

八进制转换成十进制

//3 * 8的0方 + 2 * 8 的1次方 + 1 * 8 的2次
console.log(0O123);
复制代码

十六进制转换成十进制

//3 * 16的0方 + 2 * 16 的1次方 + 1 *16 的2次
console.log(0x123);
复制代码
1.1.2 浮点数

只能使用十进制表示

可以使用幂(科学计数法)表示

// 浮点数可以使用幂(科学计数法)表示
console.log(0.5e-5);
复制代码
1.1.3 特殊值

特殊值:

Infinity(无穷大)
NaN (not a number 不是数)

  • Infinity: 无穷大 属于数字字面量(计算机计算能力有限超过极限时,显示无穷大)

  • -Infinity:无穷小 属于数字字面量 一个数除以0等于无穷小

// 一个数除以0等于无穷小
console.log(2/0);
复制代码
  • NaN(not a number):不是数字 属于数字字面量

1.2 字符串字面量

字符串必须用双引号包裹。

字符串可以书写零个或者多个特殊字符:

  • \n : 换行

  • \t : 制表符

有些符号有特殊含义,可以在符号前面书写转义字符\ 。可以原样输出符号

console.log("这是一对双引号\" \" \? 这是反斜杠\\");
复制代码

2. 变量

ECMAScript 的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据

定义变量时要使用 var 操作符(注意var是一个关键字),后跟变量名(即一个标识符),如下所示:

var message;
复制代码

变量使用必须先声明变量 :var 变量名;

变量命名规则:

  • ① 只能使用字母、下划线(_)、美元符号($)或数字,但是不能是数字开头
  • ② JS是区分大小写的,这里所指的字母可以是(大写的)“A”到字母“Z”和(小写的)“a”到“z”
  • ③ 不能是JavaScript的关键字和保留字。

未经过初始化的变量,会保存一个特殊的值—— undefined

如果使用变量之前未声明,会报错。

变量可以多次赋值,最后赋值的结果输出,旧值被舍弃。

变量声明的提升:

通常情况先声明变量,然后进行赋值。可以先使用后面声明的变量,不会报错。输出结果是undefined(表示变量没有任何赋值,可以接收任何赋值)。即使后面声明的变量已经有赋值,结果也是undefined.

// 先使用变量
console.log(a);
// 在声明变量 声明变量时可以直接赋值
var a = 10;

//等价写法:
var a;
console.log(a);
a = 10;
复制代码

JS预解析工作原理:

JS在执行代码之前,先预解析。将所有变量的声明语句提升到所有语句之前。只提升变量的声明语句不提升变量的赋值。

用 var 操作符定义的变量将成为定义该变量的作用域中的局部变量。也就是说,如果在函数中使用 var 定义一个变量,那么这个变量在函数退出后就会被销毁

function test(){
    var message = "hi"; // 局部变量
}
test();
alert(message); // 错误!
复制代码

省略 var 操作符,从而创建一个全局变量,要是JS严格模式就会报错(所以不推荐):

function test(){
    message = "hi"; //  全局变量
}
test();
alert(message); // "hi"
复制代码

同时声明并初始化多个变量: 使用一条语句定义多个变量,只要像下面这样把每个变量(初始化或不初始化均可)用逗号分隔开即可:

var message = "hi",
    found = false,
    age = 29;
复制代码

转载于:https://juejin.im/post/5af1a0056fb9a07aa767a023

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值