在了解数据类型之前,先引入几个概念,字面量,变量,常量。
字面量:字面量就是一个值,它所表示的意思就是它的字面意思。
变量:可变的量,是一块内存空间,用来存储和代表不同值的东西。
- 若存储的是基本数据类型数据,则值数据本身就存储在该变量的内存空间中 【存的是值】
- 若要存储的值为引用数据类型,则该变量中存储的是值的【堆内存地址】 【存的是值的地址】
//变量的声明和赋值
let str = 'hello world'
常量:常量只能赋值一次,且不能被修改。用const关键字声明。
//常量的声明
const a = 10
基本数据类型
常见的基本数据类型有:string、number、boolean、null、undefined。
string
字符串,JS中的字符串需要用引号引起来,且 ' 或者 " 都行,但是不能混合使用。
注意:引号不能跨行,且同类型的引号不能嵌套使用
如果同类型引号想要嵌套使用,可以使用 \ 来作为转义字符。常见的转义字符有:
| \" | 双引号 |
|---|---|
| \' | 单引号 |
| \t | 制表符 |
| \n | 换行 |
| \\ | 反斜杠 |
let str = "I'm zhangsan";
// or
let str ='I\'m zhangsan';
模板字符串
特点:
- 可以换行,并保留字符串中的格式。
- 在模版字符串中可以直接嵌入变量,`${变量名}`。
使用方法:
使用返单引号`来创建模版字符串
let str1='锄禾日当午';
let str = `${str1},
汗滴禾下土。`
number
数值,在JS中所有的整数和浮点数 都属于Number类型。
- 在JS中,整数运算能够得到一个精确的结果。
- 在JS中,浮点数的运算不一定能得到精确的结果。
console.log(0.1+0.2)//0.30000000000000004
- 当数值超过一定范围时,会用Infinity表示,Infinity表示正无穷,是一个字面量,可以直接使用。 (typeof运算符,用来检查一个值的类型,返回值的类型是string)
typeof Infinity // 'number'
- NaN(Not a Number)也是一个特殊的数值,即非法数字。
typeof NaN // 'number'
- JS里也能保存其他进制的数值。
| 进制 | 表示形式 |
|---|---|
| 二进制 | 0b开头 |
| 八进制 | 0o开头 |
| 十六进制 | 0x开头 |
boolean
布尔值,用来进行逻辑判断。
布尔值只有两个值:true和false。
typeof true //'boolean'
null
null通常表示一个空的对象。
typeof null //'object'
undefined
undefined表示声明一个变量但是未赋值。
let a;
typeof a; //'undefined'
null与undefined
- null表示一个值被声明了并且赋值了一个空对象。
- undefined表示一个值声明了但是没有赋值。
- 在开发时,如果想把一个值设为空的话,用null,不要用undefined。