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));// undefinedconsole.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高级程序设计(第三版)。

JS 几种数据类型及其转换相关推荐

  1. 前端开发:JS中常用数据类型的转换以及使用场景集锦

    前言 在前端开发中,关于数据转换也是使用频率非常高的知识点,尤其是常见数据类型之间的相互转换的使用频率就更高了,那么本篇博文就来分享一下关于JS中常用数据类型的转换使用,分享一下,方便后期查阅使用. ...

  2. JavaScript入门第一天,js教程,js变量, 数据类型,数据转换,隐式转换

    今天在整理笔记,这是我重新整理的JavaScript的笔记.我觉得学什么东西,就应该认真去学,努力去学! java学习笔记 一.js有三种方式来使用 1. 首先第一种:写在标签里面 2. 其次第二种: ...

  3. JS有哪些数据类型?它的特点和区别。栈和堆的是什么?数据类型之间的转换

    大家好,我是IT修真院武汉分院web第17期的学员吴三水,一枚正直纯洁善良的web程序员 今天给大家分享一下,修真院官网js(职业)任务一,深度思考中的知识点--JS有哪些数据类型? 1.背景介绍 J ...

  4. 【ES6】JS第7种数据类型:Symbol

    [ES6]JS第7种数据类型:Symbol 一.Symbol的由来 二.Symbol的涵义 三.Symbol的判等 四.Symbol的运算与转化 查看更多ES6教学文章: 参考文献 引言:我们知道JS ...

  5. js中有哪几种数据类型

    js中有哪几种数据类型 js有八种数据类型 : number,string,boolean,undefined,null,Object,bigint,symbol 数据类型检测的方法 typeof判断 ...

  6. js中的8种数据类型

    js中的数据类型 6种基本数据类型: Number (基本数据类型)(NaN) String Boolean Null (null) Undefined (undefined) Object (引用数 ...

  7. js中判断数据类型的几种实用方法

    前言 最近项目中有不少地方需要判断数据类型,但是判断数据类型也有好几种方法,并且每种方法判断的数据类型也有局限性,所以想总结一下,方便以后查阅. 分别是 typeof ,instanceof,Obje ...

  8. html数据类型判断,JS中判断数据类型的几种方法

    1⃣️首先我们来了解一下js中的数据类型 1.基本数据类型:Undefined.Null.Boolean.Number.String(值类型) 2.复杂数据类型:Object(引用类型) (值类型和引 ...

  9. 简单介绍Python中的几种数据类型

    大体上把Python中的数据类型分为如下几类: Number(数字) 包括int,long,float,complex String(字符串) 例如:hello,"hello",h ...

最新文章

  1. Nginx配置与使用
  2. DSP/BIOS实时操作系统中PIP对象多任务间传递数据示例程序
  3. Jar Hell变得轻松–用jHades揭秘classpath
  4. oracle怎么从大字段中取节点,Oracle数据库 获取CLOB字段存储的xml格式字符串指定节点的值...
  5. LeetCode 第 25 场双周赛(718/1832,前39.2%)
  6. 2019软博会“核心软件创新发展”主题论坛成功召开
  7. 度盘转存工具 v1.8
  8. 【ELK】ELK安装与配置
  9. 论文阅读:Non-local Neural Networks
  10. JavaScript事件---事件入门
  11. 必须收藏的文档:IronPython脚本在TIBCO Spotfire中的使用
  12. CBR VBR CVBR
  13. build up__css
  14. AtCoder Beginner Contest 164 E - Two Currencies
  15. php deel views,视图 - Views
  16. Linux:进程间通信(创建匿名管道,父子进程间通信,兄弟进程间通信)
  17. [零刻] SER5 Pro 迷你主机:从开箱到安装ESXi+虚拟机
  18. 英式音标26字母(U-Z)
  19. 跳转微信功能(学习总结)
  20. 第19篇 基础(十九)详解QVector(数组)

热门文章

  1. kdbg调试linux汇编,Ubuntu 16.04安装Kdbg替代Insight实现汇编的调试
  2. 几种经典的数据排序及其Java实现
  3. SQLite—homework
  4. 有1~5000一组乱序数列,请使用伪代码对该数进行排列
  5. headroom.js插件使用方法
  6. 【原创-长文】openstack 版本D安装配置及本次安装中遇到的问题
  7. 对lua协程的一点理解
  8. 如何定位死循环或高CPU使用率(linux)
  9. java有装箱和拆箱吗_Java中装箱和拆箱,你真的都懂么?
  10. 树莓派(TCP客户端 )和Wemos(TCP服务端连接红外模块)通讯实现对红外设备的控制