【JavaScript中的数据类型】

2 篇文章 0 订阅

js数据类型的分类

基本数据类型

  • Number
  • String
  • Boolean
  • Undefined
  • null
  • symbol

复杂数据类型

  • Object
  • Array
  • Function
  • Date
  • RegExp
  • Map
  • Set

js数据类型的区别

最主要的区别就是存储的位置不同:

基本数据类型存储在栈中;而复杂数据类型(引用类型)的对象存储于堆中,而栈中仅仅存储堆中值对应的地址,通过栈中的地址可以找到对应的值

在对数据类型的值进行复制时:

简单类型是生成相同的值,两个对象对应不同的地址,更改赋值后的变量时,不会对前一个值产生影响;而复杂类型则是将保存对象的内存地址赋值给另一个变量,也就是两个变量指向堆内存中同一个对象,更改赋值后的变量时,会对复制前的值产生影响

//基本数据类型
let a=123
let b=a
console.log(b);//123
b=234
console.log(b);//234
console.log(a);//123

//复杂数据类型
let c={name:'zhangsan'}
let d=c
console.log(d);
d.name='lisi'
console.log(d);
console.log(c);

数据类型具体分析

Number类型

整数类型格式:

十进制(55),还可以设置八进制(070)、十六进制(0xA)

浮点类型格式:

在数值汇总时包含小数点(1.1)、科学计数法(3.125e7)

特殊数值NaN:

全称为not a number,表示本来要返回数值的操作失败了

Undefined类型

undefined类型只有一个值,就是undefined。当使用var或let声明了变量但没有初始化时,就相当于给变量赋予了undefined值

触发时机:

当一个变量声明了,但没有赋值时,这时这个变量的值为undefined,而当不存在某个变量,直接去打印时,程序会报错

let a
console.log(a) //undefined
console.log(b) //报错

String类型

使用双引号("aaa")、单引号('aaa')或反引号(`aaa`)表示

特点:

字符串是不可变的,一旦创建它们的值就无法改变,想要修改就需要先销毁再创建

let a = "hello"
lang = lang + " world"

Null类型

Null类型只有一个值,即特殊值null。null值表示一个空的对象指针,这也是给typeof传一个null会返回"object"的原因,undefined值是由null值派生而来

console.log(typeof(null)) //object
console.log(null == undefined) //true

应用场景:

只要变量要保存对象,而且当时没有那个对象可保存,就可用null来填充该变量

Boolean类型

Boolean(布尔值)类型有两个值:true和false,通过Boolean可以将其他类型的数据转化成布尔值

转化的具体规则:

(1)非空字符串转化为true,空字符串转化为false

(2)非0数值转化为true,0和NaN转化为false

(3)任意对象转化为true,null转化为false

(4)undefined转化为false

Symbol类型

Symbol (符号)是原始值,具有唯一、不可变的特点。

应用场景:

确保对象属性使用唯一标识符,不会发生属性冲突的危险

let a = Symbol()
let b = Symbol()
console.log(a == b) //false

Object类型

创建object常用方式为对象字面量表示法,属性名可以是字符串或数值

let person = {
    name: "zhangsan",
    "age": 29,
    5: true
}

Array类型

 数组是一组有序的数据,数组中每个槽位可以存储任意类型的数据。并且,数组也是动态大小的,会随着数据添加而自动增长

let a = ["1", 2, 3]
a.push(2)
console.log(a)

Function类型

函数实际上是对象,每个函数都是Function类型的实例,Function也有属性和方法,函数存在三种常见的表达方式:

  • 函数声明
// 函数声明
function sum (num1, num2) {
    return num1 + num2
}
  • 函数表达式
let sum = function(num1, num2) {
    return num1 + num2
}
  • 箭头函数
let sum = (num1, num2) => {
    return num1 + num2
}

总结

以上就是我对JavaScript数据类型的理解,希望对刚刚接触js的你有所帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值