美文网首页
js内置类型,类型转化,类型检测

js内置类型,类型转化,类型检测

作者: BigBigWen大文 | 来源:发表于2017-08-27 23:04 被阅读0次
    ES6以后,Javascript的内置类型有哪些?其中哪些是基本类型?
    • null
      空值,表示没有对象,即此处不该有值
    • undefined
      未定义,表示此处应该有值,但是还未定义
    • boolean
      布尔值 true false
    • string
      创建string对象的语法
    new String(s)
    String(s)
    

    把s转换成原始字符串并返回
    string对象属性: length constructor prototype
    string对象方法: charAt() 返回指定位置的字符串 等等

    • number
      数字 Number(s) 把s转换成数字
    • object
      对象 js中所有事物都是对象,还可以自定义对象
      可以通过字面量的方式或者构造函数的方式创建对象
    • symbol
      一种特殊的,不可变的数据类型,可用做对象属性的标识符
      symbol() 来创建 每次创建的都是不一样的唯一标识
      除了object之外都是基本类型
    常见的类型转换,字符串和数字之间如何转换,任意类型如何转为布尔值

    数字转为字符串:
    数字 + '' ------> 字符串
    toString(数字) ------> 字符串
    string(数字) ------> 字符串
    字符串转化为数字:
    Number('字符串') ------> 数字
    parseInt('字符串', 10) ------> 数字 // 整数
    parseFloat(字符串) ------> 数字 //小数
    '字符串' * 1 -----> 数字
    Math.floor(''字符串) ------> 数字 //向下取整
    任意类型转换为布尔值:
    !!任意值 ------> 本身布尔值
    Boolean(任意值) ------> 本身布尔值

    各种类型的检测方法(至少三种方法,分析每种方法的优缺点)

    方法一:

     var type = (function(global) {
        var cache = {};
        return function(obj) {
            var key;
            return obj === null ? 'null' // null
                : obj === global ? 'global' // window in browser or global in nodejs
                : (key = typeof obj) !== 'object' ? key // basic: string, boolean, number, undefined, function
                : obj.nodeType ? 'object' // DOM element
                : cache[key = ({}).toString.call(obj)] // cached. date, regexp, error, object, array, math
                || (cache[key] = key.slice(8, -1).toLowerCase()); // get XXXX from [object XXXX], and cache it
        };
    }(this));
    
    c6046bf7-5909-4ff0-88cc-dc8a0a4f403e.png
    根据这个方法来检测数据类型很准确有效但是代码很长
    方法二:
    Object.prototype.toString.call(数据) e0c024d3-a712-46ec-bfe0-7ed62b7c4519.png
    拿到不是直接的数据类型还要再裁剪
    方法三:
    typeof 可以用来检测基本类型 string number boolean undefined function
    instanceof检测对象,函数,返回布尔值
    检测null 直接简单粗暴的 数据 === unll
    检测数组 isArray

    相关文章

      网友评论

          本文标题:js内置类型,类型转化,类型检测

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