10-JS数据类型分类和检测

2018-07-09  本文已影响23人  我腐

JS中的数据类型

  • 基本数据类型(值类型)
    • number:数字
    • string:字符串
    • boolean:布尔
    • null:空对象指针
    • undefined:未定义

12 12.5 -12.5  0
'zhufeng'  "珠峰"  =>单双引号包裹起来的都是字符串(单双引号没有区别)
true false =>布尔类型:只有两个值
null
underfined
  • 引用数据类型
    • object对象数据类型
      • {}普通对象
      • []数组
      • /^$/正则
      • ...
    • function函数数据类型

{name:'zfpx',age:8}
[12,23,34]
/^-?(\d|([1-9]\d+))(\.\d+)?$/
function fn(){ }
这么多的数据类型JS如何的去检测呢?(4种方法)

typeof

使用 typeof 检测,返回的结果是一个字符串,字符串中包含的内容证明了值是属于什么类型的

[局限性]
1、 typeof null 不是‘null’ 而是‘object’ : 因为null虽然是一个单独的数据类型,但是它原本意思是空对象值,浏览器使用typeof检测的时候会把它按照对象来检测
2、使用typeof无法具体细分出到底是数组还是正则,因为返回的结果都是“object”


image.png

腾讯面试题:

console.log(typeof typeof [ ]);的结果是啥
结果是 string
image.png
image.png
 typeof 12 => "number"

 var num =13; 
 typeof num =>"number"
image.png image.png

布尔

Boolean()

把其它数据类型的值转换成布尔类型

只有0、NaN、空字符串、null、underfined 这五个数据值转换为布尔类型的是false,其余的都会是 true

Boolean.png

!

!= : 不等于
叹号在JS里还有一个作用: 取反,先把值转换为布尔类型,然后再去取反

image.png

!!

在一个叹号取反的基础上再取反,取两次反相当于没有操作,但是却已经把其它类型值转换为布尔类型了,和Boolean是相同的效果


image.png

字符串

在JS中 单引号 和 双引号 包起来的都是字符串

举例子


12   是number 类型
'12'  是 string 类型
'[12,23]' 也是string 类型

常用方法:
charAt 、 charCodeAt
substr 、 substring、 slice
toUpperCase、toLowerCase
indexOf 、 lastIndexOf
split
replace
match
...

number 数字

0 12 -11 12.5 ,JS中多增加了一个number类型的数据:NaN

image.png
typeof NaN ->'number'
image.png

NaN

上一篇下一篇

猜你喜欢

热点阅读