JavaScript基本数据类型-学习笔记

本文思维导图

JavaScript数据类型共有6种:数值(number)、字符串(string)、布尔值(boolean)、undefined、null、对象(object)。

注:ES6新增了第7种类型Symbol,具体请参考ES6之Symbol数据类型一文的总结。

1 基本数据类型

1.1 数值

1.1.1 基础概念及语法

数值包括整数小数(或者叫浮点数)两种,例如13.14

  1. 实际上,在JavaScript内部,所有的数字都是以64位浮点数形式存储,即便整数也是如此。

    注:某些运算只有整数才能完成,此时 JavaScript 会自动把64位浮点数,转成32位整数,然后再进行运算。

  2. 由于浮点数不是精确的值,因此在涉及小数的运算或比较时要格外小心。
    在这里插入图片描述

  3. JavaScript 能够表示的数值范围21024~2-1023(开区间)。大于等于21024则会发生“正向溢出”,此时会返回Infinity;小于等于2-1075则会发生“负向溢出”,则会返回0

  4. JavaScript提供了4种进制的整数表示方法:十进制、八进制、十六进制以及二进制。JavaScript 内部会自动将八进制、十六进制、二进制转为十进制

    • 十进制:没有前导0的数值。
    • 八进制:前缀为0o(第二个是字母o)或00的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。
    • 十六进制:前缀为0x0X的数值。
    • 二进制:前缀为0b0B的数值。
  5. 在JavaScript内部存在2个0,一个是+0,一个是-0,区别就是表示它们的64位二进制数的符号位不同。但是它们是等价的(严格意义上的相等)。唯一不同的是当作分母时返回值不同。具体看如下测试:
    在这里插入图片描述

  6. NaN作为一个特殊值,表示非数字(即Not a Number),测试如下:在下面的例子中,由于indexOf()方法执行的是严格的相等运算(即===),对NaN不成立,因此会返回-1
    在这里插入图片描述

  7. Infinity还有正负之分,Infinity表示正无穷,-Infinity表示负无穷。关于Infinity比较和运算的测试如下:
    在这里插入图片描述

1.1.2 parseInt()方法

parseInt()方法:用于将字符串转为整数。下面是一些典型的测试例子。

注意最后两个例子:若小数点前的数字多于21位,或者小数点后的0多于5位,则JavaScript会自动将数值转为科学计数法表示

在这里插入图片描述

其实parseInt()方法还可以接受第二个参数,第二个参数的范围位2~36,表示被解析值的进制返回该值对应的十进制数。由于第二个参数默认值为10,因此一般都省略第二个参数。
在这里插入图片描述

1.1.3 parseFloat()方法

parseFloat()方法:用于将字符串转为浮点数。
在这里插入图片描述

1.1.4 isNaN()方法

isNaN()方法:用来判断一个值是否为NaN
在这里插入图片描述

1.1.5 isFinite()方法

isFinite()方法:用来判断一个值是否为正常的数值,其中像:Infinity-InfinityNaNundefinednull都为非正常数值,因此都会返回false,而其他的数值则都返回true

1.2 字符串

1.2.1 基础概念及语法

  1. 字符串即我们所说的文本。具体地,字符串就是0个或多个排在一起的字符,并放在单引号或双引号之中

    规范:由于 HTML 语言的属性值使用双引号,所以很多项目约定 JavaScript 语言的字符串只使用单引号。

  2. 单引号内可以用双引号,双引号内也可以用单引号,若单引号内用单引号或双引号内用双引号,则可以借助转义符\来间接使用。

  3. 如果长字符串必须分成多行,可以在每一行的尾部使用反斜杠,当然也可以使用+

    //方式1
    var longString = 'Long \
    long \
    long \
    string';//输出时为单行,即“Long long long string”
    //方式2
    var longString = 'Long '
      + 'long '
      + 'long '
      + 'string';
    

1.2.2 转义符

反斜杠\在字符串内有特殊含义,用来表示一些特殊字符,所以又称为转义符。

常见的需要转义的特殊字符有:

  • \0 :null(\u0000
  • \b :后退键(\u0008
  • \f :换页符(\u000C
  • \n :换行符(\u000A
  • \r :回车键(\u000D
  • \t :制表符(\u0009
  • \v :垂直制表符(\u000B
  • \' :单引号(\u0027
  • \" :双引号(\u0022
  • \\ :反斜杠(\u005C

1.2.3 字符串与数组的联系

字符串可以被视为字符数组,因此可以用数组的索引形式返回某个位置的字符。

1.2.4 length属性

字符串的length属性会返回字符串的长度。

1.3 布尔值

布尔值有表示真假的两个特殊值true(真)和false(假)。

注意:如果 JavaScript 预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则为:除了undefinednullfalse0NaN或空字符串(''"")会被转为false,其他值都视为true

1.4 特殊值-null

null表示空值,即值为空,null的类型其实是object(下面第二节有讲到)。

null的一个使用场景:调用函数时,某个参数未设置任何值,这时就可以传入null,表示该参数为空。

1.5 特殊值-undefined

undefined表示未定义不存在

1.6 对象

对象就是各种值组成的集合

1.6.1 对象

对象是数据组合的一种方式。

有关对象的更多内容请移步至JavaScript基本数据类型之对象-学习笔记

1.6.2 函数(function)

函数是处理数据的一种方法,JavaScript也将其作为一种数据类型,可以将函数赋值给变量

有关函数的更多内容请移步至JavaScript基本数据类型之函数-学习笔记

1.6.3 数组(array)

数组也是数据组合的一种方式。

有关数组的更多内容请移步至JavaScript基本数据类型之数组-学习笔记

2 确定数据类型的方法

JavaScript有3种方法可以确定数据的类型:

  1. typeof运算符:返回数据的类型。下面有实践演示。
  2. instanceof运算符:借助该运算符可以返回一个布尔值,表示对象是否为某个构造函数的实例,具体使用可以参考JavaScript面向对象之继承一文中1.4小节的总结。
  3. Object.prototype.toString()方法:可以精确地获得对象的类型。具体请参考:Object.prototype.toString() - JavaScript | MDN (mozilla.org)

总结:相比后两种方法,typeof运算符仅能判断基本数据类型,例如无法区分数组和对象的精确类型(因为它们的基本数据类型都为对象,看下面的测试就能明白);而后两种方法专门用来判断对象的具体类型

下面我们重点了解下typeof运算符,借助它可以返回一个值的数据类型,如下测试所示:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值