JavaScript的数据类型

举报
青年码农 发表于 2022/08/25 00:08:48 2022/08/25
831 0 0
【摘要】 这几天再看“JavaScript高级程序设计”,打算巩固下基础,顺便对一些常用的进行总结,之后的更新可能都是基础知识。有兴趣的可以关注下公众号 今天说说JavaScript的数据类型,很多人会认为有六种数据类型,其实不是很全面,我们就盘盘JavaScript到底有几种数据类型,我们分原始类型和引用类型说。 1 typ...

这几天再看“JavaScript高级程序设计”,打算巩固下基础,顺便对一些常用的进行总结,之后的更新可能都是基础知识。有兴趣的可以关注下公众号

今天说说JavaScript的数据类型,很多人会认为有六种数据类型,其实不是很全面,我们就盘盘JavaScript到底有几种数据类型,我们分原始类型和引用类型说。

1 typeof 操作符

在说数据类型之前,我们需要知道如何去判断一个变量属于什么数据类型,typeof操作符就是为此而生的。对一个值使用 typeof 操作符会返回下列字符串之一:


       "undefined"    表示值未定义;
       "boolean"      表示值为布尔值;
       "string"       表示值为字符串;
       "number"       表示值为数值;
       "object"       表示值为对象;
       "function"     表示值为函数;
       "symbol"       表示值为符号;
       "bigint"       表示值最大安全整数;
   
  

2 原始数据类型

在ES6之前,有五种原始数据类型,number、string、boolean、null、undefined,在ES6新增一种symbol,ES10新增一种bigint。算下来,原始数据类型就有7种。

2.1 number


       let a = 1
       let b = 1.1
       let c = -1.1
       typeof a  // "number"
       typeof b  // "number"
       typeof c  // "number"
   
  

我们通过操作符typeof可以看出上面几个变量都是原始数据类型中的数字类型,这里我们说下特殊的数值NaN,意思是“不是数值”(Not a Number),用于表示本来要返回数值的操作失败了(而不是抛出错误)。


       console.log(0/0);    // NaN
       console.log(-0/+0);  // NaN
   
  

我们还可以通过Number()、parseInt()和 parseFloat()将非数值转换为数值。

2.2 string


       let firstName = "lilei";
       let lastName = 'lixiaolei';
   
  

这里就不多说了,单引号和双引号都是可以定义字符串的。

2.3 boolean

Boolean(布尔值)类型是 ECMAScript 中使用最频繁的类型之一,有两个字面值:true 和 false。


       let a = false;
       let b = true;
   
  

2.4 null

Null 类型只有一个值,即特殊值 null。逻辑上讲,null 值表示一个空对象指针,这也是给typeof 传一个 null 会返回"object"的原因:


       let car = null;
       console.log(typeof car); // "object"
   
  

2.5 undefined

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


       let message;
       console.log(message == undefined); // true
   
  

2.6 symbol(ES6)

Symbol(符号)是 ECMAScript 6 新增的数据类型。用途是确保对象属性使用唯一标识符,不会发生属性冲突的危险。


       let sym = Symbol();
       console.log(typeof sym); // symbol
   
  

2.7 bigint(ES10)

BigInt数据类型的目的是比Number数据类型支持的范围更大的整数值。在对大整数执行数学运算时,以任意精度表示整数的能力尤为重要。使用BigInt,整数溢出将不再是问题。


       let max = Number.MAX_SAFE_INTEGER;    // 最大安全整数
       let max1 = max + 1
       let max2 = max + 2
       max1 === max2  //true
   
  

由于JavaScript按照IEEE 754-2008标准的定义,所有数字都以双精度64位浮点格式表示。在此标准下,无法精确表示的非常大的整数将自动四舍五入。确切地说,JS 中的Number类型只能安全地表示-9007199254740991 (-(2^53-1)) 和9007199254740991(2^53-1)之间的整数,任何超出此范围的整数值都可能失去精度。使用BigInt,应用程序不再需要变通方法或库来安全地表示Number.MAX_SAFE_INTEGER和Number.Min_SAFE_INTEGER之外的整数。现在可以在标准JS中执行对大整数的算术运算,而不会有精度损失的风险。


       let max = BigInt(Number.MAX_SAFE_INTEGER);
       let max1 = max + 1n
       let max2 = max + 2n
       max1 === max2 // false
   
  

3 引用数据类型

引用数据类型(object类型),其实就是一组数据和功能的集合,通过 new 操作符后跟对象类型的名称来创建。我们常用的object、array、function、data等都属于引用类型。


       let a = new Function()
       let b = new Date()
       let c = new Object()
       let d = new Array()
   
  

关于引用类型的属性和方法,我们后期再讲。

4 总结

JavaScript的数据类型一共有8种,基本数据类型有7种,number、string、boolean、null、undefined,symbol(ES6),bigint(ES10),引用类型有1种object,我们常用的object、array、function、data等都属于引用类型。

文章来源: blog.csdn.net,作者:NMGWAP,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/NMGWAP/article/details/125066844

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。