美文网首页
变量类型和转换

变量类型和转换

作者: talent_ray | 来源:发表于2020-03-24 14:17 被阅读0次

变量类型

  • JS包含六种基本类型 boolean、number、string、symbol、undefined、null
  • 三种引用类型 对象、数组、函数

通过typeof识别类型

对以上九种类型的识别为
boolean、number、string、symbol、undefined、object、object、function
所以typeof只能运算符用于判断对象的类型,但是对于一些创建的对象,它们都会返回'object',有时我们需要判断该实例是否为某个对象的实例,那么这个时候需要用到instanceof运算符

instanceof

判断一个对象与构造函数是否在一个原型链上

const Person = function(){}
const p1 = new Person()
p1 instanceof Person // true

var str = 'hello word'
str instanceof String // false
var str2 = new String('hello word')
str2 instanceof String // true

instanceof 方法要求开发者明确地确认对象为某特定类型,所以也有它的局限性

通过typeof + Object.prototype.toString判断

如果是原始类型,他会将原始类型包装为引用类型,然后调用对应方法

 /**
   * 类型判断
   */
 function getType(val){
   // 先处理null
   if(val === null){
       return 'null'
   }
   // 判断是不是基础类型
   const typeOfT = typeof val
   if(typeOfT !== 'object'){
     return typeOfT
   }
   // 处理引用类型
   const tmp = {
     '[object object]' : 'object',
     '[object Array]' :  'array',
     // 包装类型
     '[object String]' : 'object - string',
     '[object Number]' : 'object - number',
     '[object Boolean]' : 'object - boolean'
   }
   const typeStr = Object.prototype.toString().call(val)
   return tmp[typeStr]
 }

变量的转换

变量在计算及运行过程中,会进行隐式的类型转换

转boolean

以下都为假值,其他所有值都转为true,包括所有对象(空对象,空数组)
false、undefiend、null、' '、NaN、0、-0

对象转基本类型

对象在转基本类型时,会调用'valueOf',需要转成字符类型时调用'toString'

var a = {
  valueOf() {
    return 0;
  },
  toString() {
    return '1';
  }
}

1 + a           // 1
'1'.concat(a)   //"11"

需要对类型转换更深入了解的可参考下面两篇文章

JS类型转换规则总结
JS隐射类型转换

相关文章

  • 2018-07-17

    JAVa的变量类型和类型转换

  • C#类型转换

    隐式类型转换:两个变量类型要兼容,如float和int 显示类型转换:两个变量类型要兼容 使用convert转换:...

  • 3.12 PHP数据类型之间的转换和检测

    数据类型的转换有2种方式,强制转换和自动转换。 强制转换: 用setType(变量,"类型");,它是用来将变量直...

  • Go 基础篇总结-变量

    一、Go内建变量类型 类型转换 type(varName) 二、变量定义 四种变量定义类型: 变量定义 三、变量和...

  • Go 基础篇-变量

    一、Go内建变量类型 类型转换 type(varName) 二、变量定义 四种变量定义类型: 变量定义 三、变量和...

  • 变量类型和转换

    变量类型 JS包含六种基本类型 boolean、number、string、symbol、undefined、nu...

  • Go 语言基础——变量常量的定义

    go语言不支持隐式类型转换,别名和原有类型也不能进行隐式类型转换go语言不支持隐式转换 变量 变量声明 声明变量不...

  • 》》》PHP初入---(二)

    数据转换 数据类型转换为逻辑的规则:强制转换:settype(变量,类型)--将变量转换为指定的类型隐式转换:根据...

  • Houdini VEX(十六)类型转换

    一、类型转换 转换变量类型方法通常是变量类型( 要转化的变量 )如 float(100) -> 100.0 示例:...

  • PHP入门之︰数据类型转换

    PHP中的变量的运算,必须是同类型才能运算,如果类型不同,要转成同类型才能运算。变量类型转换分为:自动转换和强制转...

网友评论

      本文标题:变量类型和转换

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