JS数据类型

103 阅读3分钟

简介

JS的数据类型有8种(大小写无所谓):

  • 数字 number
  • 字符串 string
  • 布尔 bool
  • 符号 symbol
  • 空 undefined
  • 空 null
  • 对象 object 总结:四基两空一对象

还有一种新增的bigint,任意精度整数,可以安全存储和操作大整数。即始超出 Number 能够表示的安全整数范围。是 chrome 67中的新功能。

数字 number

64位浮点数,JS 的 number 全都是以小数(浮点数)的形式存储的,没有单独的整数。

+0 和 -0是不一样的。

无穷大:Infinity 、+Infinity 、-Infinity

无法表示的数字:NaN (Not a Number)

字符串 string

image.png

转义:

\' 表示 '
\" 表示 "
\n 表示换行
\r 表示回车
\t 表示 tab 制表符
\\ 表示 \
\uFFFF 表示对应的 Unicode 字符
\xFF 表示前 256Unicode 字符

如果你想要在字符串里回车

let s = `这样是
可以的
用反引号很容易做到`

布尔 bool 符号 symbol 空 undefined 空 null 对象 object

类型转换

  1. number => string:
  • String(n)
  • n + ''
  1. string => number
  • Number(s)
  • parseInt(s) / parseFloat(s)
  • s - 0
  1. x => bool
  • Boolean(x)
  • !!x
  1. x => string
  • String(x)
  • x.toString()

一些问题及解答

  • JS数据类型:JS 的数据类型有几种?

    8种。NumberStringBooleanNullundefinedobjectsymbol、bigInt。
    
  • JS数据类型:Object 中包含了哪几种类型?

    其中包含了DatafunctionArray等。这三种是常规用的。
    
  • JS数据类型:JS的基本类型和引用类型有哪些呢?

    基本类型(单类型):除Object外都是。 StringNumberbooleannullundefined。
    
    引用类型:object。里面包含的 functionArrayDate
  • JS数据类型:JS 中 typeof 输出分别是什么?

    { } 、[ ] 输出 objectconsole.log( ) 输出 function

注意一点:NaN 是 Number 中的一种,非Number 。

  • JS数据类型:null 和 undefined 有什么区别?

    Null 只有一个值,是 null。不存在的对象。
    
    Undefined 只有一个值,是undefined。没有初始化。undefined 是从 null 中派生出来的。
    
    简单理解就是:undefined 是没有定义的,null 是定义了但是为空。
    
  • JS数据类型:null 不存在的原因是什么?如何解决?

    不存在的原因是:

    1、方法不存在
    
    2、对象不存在
    
    3、字符串变量不存在
    
    4、接口类型对象没初始化 
    

    解决方法:

    做判断处理的时候,放在设定值的最前面
    
  • JS数据类型:== 和 === 有什么区别,什么场景下使用?

    == 表示相同。

    判断类型,如果不同,会进行一次类型转换(隐式转换)。
    
    类型不同,值也可能相等。
    

    === 表示严格相同。

    会先判断类型,类型不同绝不相等,类型不同直接就是 false,不再进行下一步操作。
    

例:

  1. undefined和null:同为undefined或null,不管怎么比都为true,一个为null,一个为undefined,==比较为true,===比较为false。
  2. 整数与boolean比较,1和true用==比较为true,0和false用==号比较为true,其它为false。
  3. 字符串和整数进行比较,如果字符串转换为整数和的值和整数相等,使用==比较为true,使用===比较为false。
  • 对象可以比较吗?

    对象是可以比较,遍历比较key 和 value就行, Object.is(value1, value2)。
    

falsy值

undefined , null , 0 , NaN , ''空字符串

只有这五个falsy值和false才是假,但是这五个又不是真的假。