• 技术文章 >web前端 >前端问答

    es6中有多少种原始数据类型

    青灯夜游青灯夜游2022-05-05 18:43:31原创184

    有6种原始数据类型:1、Null类型,表示一个“空”值,即不存在任何值;2、Undefined类型,表示未定义;3、Number类型,表示数字(整数、浮动数等);4、String类型,一段以单引号或双引号包裹的文本;5、Symbol类型等。

    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

    es6中有9种数据类型,它们有可以分成两类:

    下面就来聊聊6种原始数据类型。

    数据类型说明
    null空值,表示非对象
    undefined未定义的值,表示未赋值的初始化值
    number数字,数学运算的值
    string字符串,表示信息流
    boolean布尔值,逻辑运算的值
    Symbol表示独一无二的值

    1、Null 类型

    Null 是一个只有一个值的特殊数据类型,表示一个“空”值,即不存在任何值,什么都没有,用来定义空对象指针。

    使用 typeof 操作符来查看 Null 的类型,会发现 Null 的类型为 Object

    var a = null;
    console.log(typeof a);

    1.png

    说明 Null 其实使用属于 Object(对象)的一个特殊值。因此通过将变量赋值为 Null 我们可以创建一个空的对象。

    2、Undefined 类型

    Undefined 也是一个只有一个值的特殊数据类型,表示未定义。当我们声明一个变量但未给变量赋值时,这个变量的默认值就是 Undefined。例如:

    var num;
    console.log(num);  // 输出 undefined

    2.png

    在使用 typeof 操作符查看未赋值的变量类型时,会发现它们的类型也是 undefined。对于未声明的变量,使用 typeof 操作符查看其类型会发现,未声明的变量也是 undefined,示例代码如下:

    var message;
    console.log(typeof message);  // 输出 undefined
    console.log(typeof str);     // 输出 undefined

    3.png

    说明:null 、undefined的异同点:

    相同点:都是一个值的数据类型;二者参与判断时都返回false;二者都没有方法

    不同点:

    (a)、null 是一个对象,而undefined 不是以个对象;

    (b)、null 是一个关键字,undefined不是关键字;

    (c)、null转换为数字时为0,而undefined转换为数字时是NaN;

    (d)、typeof null返回’object‘,typeof undefined 返回’undefined‘;

    alert(null == undefined) ;//true

    3、Number 类型

    数值(Number)类型用来定义数值,JavaScript 中不区分整数和小数(浮点数),统一使用 Number 类型表示,如下例所示:

    var num1 = 123;     // 整数
    var num2 = 3.14;    // 浮点数

    注意:Number 类型所能定义的数值并不是无限的,JavaScript 中的 Number 类型只能表示 -(253 - 1) 到 (253 -1) 之间的数值。

    对于一些极大或者极小的数,也可以通过科学(指数)计数法来表示,如下例所示:

    var y=123e5;      // 123 乘以 10 的 5 次方,即 12300000
    var z=123e-5;     // 123 乘以 10 的 -5 次方,即 0.00123

    另外,Number 类型中还有一些比较特殊的值,分别为 Infinity、-Infinity 和 NaN,其中

    提示:如果某次计算的结果超出了 JavaScript 中 Number 类型的取值范围,那么这个数就会自动转化为无穷大,正数为 Infinity,负数为 -Infinity。

    在number中有一个奇葩,自身都不相等。即alert(NaN == NaN) // false;

    但是NaN 是数据类型,也就是说 typeof NaN 的返回值是’number‘;

    针对上面两个特性,ECMAScript提供了一个函数isNaN(); 用途是判断传入的值能否转换为数字,返回值是boolean值。

    空字符串转换为数字是0;

    将一个值转换为数字类型可以使用Number();

    4、String 类型

    字符串(String)类型是一段以单引号''或双引号""包裹起来的文本,例如 '123'、"abc"。需要注意的是,单引号和双引号是定义字符串的不同方式,并不是字符串的一部分。

    定义字符串时,如果字符串中包含引号,可以使用反斜杠\来转义字符串中的引号,或者选择与字符串中不同的引号来定义字符串,如下例所示:

    var str = "Let's have a cup of coffee.";  // 双引号中包含单引号
    var str = 'He said "Hello" and left.';    // 单引号中包含双引号
    var str = 'We\'ll never give up.';        // 使用反斜杠转义字符串中的单引号

    5、Boolean 类型

    布尔(Boolean)类型只有两个值,true(真)或者 false(假),在做条件判断时使用的比较多,您除了可以直接使用 true 或 false 来定义布尔类型的变量外,还可以通过一些表达式来得到布尔类型的值,例如:

    var a = true;   // 定义一个布尔值 true
    var b = false;  // 定义一个布尔值 false
    var c = 2 > 1;  // 表达式 2 > 1 成立,其结果为“真(true)”,所以 c 的值为布尔类型的 true
    var d = 2 < 1;  // 表达式 2 < 1 不成立,其结果为“假(false)”,所以 c 的值为布尔类型的 false

    boolean类型主要用途是用于判断;

    正常情况下,只有这六种情况下会转为false:空字符串、null、undefined、0、-0、NaN

    把一个数组如何转换为boolean值可以用两中方法:Boolean()、 !!()

    6、Symbol 类型

    Symbol 是 ECMAScript6 中引入的一种新的数据类型,表示独一无二的值,Symbol 类型的值需要使用 Symbol() 函数来生成,如下例所示:

    var str = "123";
    var sym1 = Symbol(str);
    var sym2 = Symbol(str);
    console.log(sym1);          // 输出 Symbol(123)
    console.log(sym2);          // 输出 Symbol(123)
    console.log(sym1 == sym2);  // 输出 false :虽然 sym1 与 sym2 看起来是相同的,但实际上它们并不一样,根据 Symbol 类型的特点,sym1 和 sym2 都是独一无二的

    【相关推荐:javascript视频教程web前端

    以上就是es6中有多少种原始数据类型的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:ES6
    上一篇:es6与commonjs有什么区别 下一篇:es6数组怎么去掉重复并且重新排序
    千万级数据并发解决方案

    相关文章推荐

    • es6数组怎么求平均数• es6 filter方法的参数有哪些• es6中find和filter有什么区别• es6怎么判断是否是数组• es6数组怎么去除特定的数• es6中super的用法是什么
    1/1

    PHP中文网