美文网首页
10-JS数据类型分类和检测

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

作者: 我腐 | 来源:发表于2018-07-09 17:08 被阅读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种方法)
    • typepof : 检测数据类型的运算符
    • instanceof : 检测某个实例是否属于这个类型
    • constructor : 获取当前实例的构造器
    • Object.prototype.toString.call : 获取当前实例的所属类信息

    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

    相关文章

      网友评论

          本文标题:10-JS数据类型分类和检测

          本文链接:https://www.haomeiwen.com/subject/vqetpftx.html