JS 几种数据类型及其转换

本文深入讲解JavaScript中的七种数据类型:Number、String、Boolean、Symbol、Null、Undefined和Object,探讨每种类型的定义、示例及类型转换方法。

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

ECMAScript 标准定义了 7 种数据类型: Number;String;Boolean;Symbol;Null;Undefined;Object 。通常,数值、字符串、布尔值、undefined和null这五种类型,合称为简单类型的值,即它们是最基本的数据类型,不能再细分了。对象则称为复杂类型的值,因为一个对象往往是多个简单类型的值的合成,可以看作是一个存放各种值的容器。(Symbol 和 object 类型,本文暂不涉及。)

1、number(数值)

(1)定义:根据 ECMAScript 标准,JavaScript 中只有一种数字类型:基于 IEEE 754 标准的双精度 64 位二进制格式的值。它并没有为整数给出一种特定的类型。简单来说,JS中的所有数字都是以64位浮点数形式储存,即使整数也是如此。PS:NaN,即非数值(Not a Number)是一个特殊的值,用于表示一个本来要返回数值的操作数未返回值得情况,设计此值的目的是防止出现抛出错误,导致代码停止执行。NaN与任何值都不相等,包括其本身。

(2)例如:

    var num1 = 10; //十进制
    console.log(num1);
    console.log(typeof num1);
    var num2 = 070; //八进制
    console.log(num2);
    console.log(typeof num2);
    var num3 = 0xA; //十六进制
    console.log(num3);
    console.log(typeof num3);
复制代码

(3)类型转换(number):

1>.Number()函数:Number() 函数把对象的值转换为数字。如果参数无法被转换为数字,则返回 NaN。如下图所示:

    console.log(Number(123));// 数字
    console.log(Number('123'));// 包含数字的字符串
    console.log(Number('123abc'));// 不含数字的字符串
    console.log(Number(''));// 特殊:空字符串
    console.log(Number(true));// 布尔值
    console.log(Number(false));// 布尔值
    console.log(Number(undefined));// undefined
    console.log(Number(null));// null
复制代码

2>.parseInt()函数:parseInt() 函数解析一个字符串参数,并返回一个指定基数的整数 。语法:parseInt(string, radix);。如下图所示:

    console.log(parseInt("17", 8));
    console.log(parseInt("015", 10));
    console.log( parseInt("F", 16));
复制代码

3>.parseFloat() 函数解析一个字符串参数并返回一个浮点数。该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。

   console.log(parseFloat("3.14"));
   console.log(parseFloat("314e-2"));
   console.log( parseFloat("FF2"));
复制代码

4>.通过 “-0”(减零)和“+”(取正)的方法,也可以达到类型转换的效果。

    console.log('123'- 0);
    console.log(+ '456');
复制代码

2、string(字符串)

(1)定义:JS中字符串类型用于表示文本数据。它是由0或多个16位Unicode字符组成的字符序列。字符串可以由双引号(")或单引号(')表示。

(2)例如:

    var text1 = 'message';
    console.log(text1);
    console.log(text1.length);
    console.log(typeof text1);
复制代码

(3)类型转换(string)。

1>.String() 方法可把一个数据转换为字符串,并返回结果。

    console.log(String(123));// "数字"
    console.log(String(true));// "布尔"
    console.log(String(undefined)); // "undefined"
    console.log(String(null)); // "null"
复制代码

2>.通过“+''”的方法,也可以转换为字符串。

    console.log(345 + '');// "数字"
    console.log(false + '');// "布尔"
    console.log(undefined + ''); // "undefined"
    console.log(null + ''); // "null"
复制代码

(4)多行字符串的拼接:1>.两个字符串之间用“+”拼接;2>.ES6语法,可用“``”进行拼接。

3、boolean(布尔值)

(1)定义:表示真伪的两个特殊值,即true(真)和false(假)。PS:true不一定是1,而false也不一定是0.Boolean类型的值true和false是区分大小写的,True和False(以及其他的混合大小写形式)都不是Boolean值,只是标志符。

(2)例如:

    var genuine = true;
    console.log(genuine);
    console.log(typeof genuine);
    var sham = false;
    console.log(sham);
    console.log(typeof sham);
复制代码

(3)类型转换。

1>.Boolean()函数可以将任意类型的值转为布尔值。

    console.log(Boolean(1));// "数字1"
    console.log(Boolean(0));// "数字0"
    console.log(Boolean('1')); // "字符串1"
    console.log(Boolean('0')); // "字符串0"
    console.log(Boolean( )); //空格
    console.log(Boolean('')); //空字符串
    console.log(Boolean(null)); //  "null"
    console.log(Boolean(undefined)); // "undefined"
复制代码

2>.通过利用感叹号取反的方法,也可以将任意类型的值转为布尔值。(此方法不适用于空格)

    console.log(!!1);// "数字1"
    console.log(!!0);// "数字0"
    console.log(!!'1'); // "字符串1"
    console.log(!!'0'); // "字符串0"
    console.log(!!''); //空字符串
    console.log(!!null); //  "null"
    console.log(!!undefined); // "undefined"
复制代码

4、null 和 undefined

(1)定义:undefined 表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值。null 表示空值,即此处的值为空。

(2)例如:

    var message;
    console.log(message);
    console.log(typeof message);
    var text = null;
    console.log(text);
    console.log(typeof text);
复制代码

(3)undefined和null的区别:javaScript高级程序设计(第三部): 在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。 null值则是表示空对象指针。简单理解起来就是说,undefined指没有赋值的变量,是非对象;而null通过typeof打印出来是object,可以看做暂不打算赋值的对象。

6、参考资料

(1)MDN:JavaScript 数据类型和数据结构

(2)阮一峰: JavaScript 教程 数据类型。

(3)JavaScript高级程序设计(第三版)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值