美文网首页
js中的内置类型

js中的内置类型

作者: 练习时长2年半的个人练习生 | 来源:发表于2020-06-20 20:35 被阅读0次

内置类型

js一共有七种内置类型

  • Number
  • String
  • Boolean
  • null
  • undeifned
  • Object
  • Symbol

Array Function Map Set 等都属于Object的子类型
其中除了Object都是值类型, Object是引用类型

判断类型

  • 通过typeof 可以判断除了null之外的六种类型,typeof null 返回值是ojbect 这是js的一个bug
    可以通过以下方法判断
   let a= null;
   (!a && typeof a == 'object') //true

补充:!运算符判断各种类型的结果

     let  a;
     console.log(!a)
     let b = null
     console.log(!b)
     let c = 0
     console.log(!c)
     let d = undefined
     console.log(!d)

Function类型

  • Function是Object的子类型.具体说就是一个可调用的对象.它有一个内部属性[[call]]该属性使其可以被调用.
  • 函数不仅是对象,还可以拥有属性, length 就是表示函数声明时的参数个数.除此外还可以对他添加自定义属性
    function fn (a,b){}
    fn.sex ="男"
    console.log(fn.sex)//男
    console.log(fn.length)//2
  • instanceof运算符 本身就不是用来判断类型的.而是用来判断 函数对象的prototype 有没有出现在对象的原型链上. 所以说用instanceof来判断类型本身就不合理.
    所以才会出现以下情况
    let str = '123';
    console.log([1,2,3] instanceof Array)//true
    console.log([1,2,3] instanceof Object) //true

因为所有类型的实例的[[prototype]]都会关联到Object.prototype
所有任何类型的实例都能调用Object.prototype上的toString方法,
每个类型又对toString进行了改写.所以,还得用Object.prototype上的toString 方法

   let str ='AAA'
   console.log(str.__proto__ === String.prototype)
   console.log(String.prototype.__proto__ === Object.prototype )
   let num =11
   console.log(num.__proto__ === Number.prototype)
   console.log(Number.prototype.__proto__ === Object.prototype )
   function fn(){}
   console.log(fn.__proto__ == Function.prototype)
   console.log(Function.prototype.__proto__ == Object.prototype)
//都返回true

Object.prototype.toString返回一个表示该对象的字符串。
Array ,String,Number 等在自己的原型上对该方法进行了重写

 let letters = {
    a: 1,
    b: 'strings',
    c: undefined,
    d: new Map(),
    e: new Set(),
    f: null,
    g: {},
    h: [],
    i: Symbol(),
    j: function () { },
    k: true,
  }
  for (let key in letters) {
    let dataType = Object.prototype.toString.apply(letters[key])
    console.log(type)
  }
//  [object Number]
//  [object String]
//  [object Undefined]
//  [object Map]
//  [object Set]
//  [object Null]
//  [object Object]
//  [object Array]
//  [object Symbol]
//  [object Function]
//  [object Boolean]

相关文章

  • 内置对象

    js的内置对象 内置对的有11个,Global对象不列入内置对象。 js的数据类型 问:js中数据类型有哪些?st...

  • 前端面试题系列——持续更新

    1、说一下你对js中的数据类型的理解: js中总共有七种内置类型,这七种内置类型可以分为两大类:基本类型(原始类型...

  • Javascript 基础之类型

    内置类型 js 中内置类型一共 7 种(包括 es6),7 种内置类型可分为两大类型:基本类型 和 引用类型(对象...

  • js中的内置类型

    内置类型 js一共有七种内置类型 Number String Boolean null undeifned Obj...

  • JS中的内置类型

    JS 中分为七种内置类型,七种内置类型又分为两大类型:基本类型和对象(Object)。 基本类型: null , ...

  • javaScript的数组

    js中没有数组类型 js 中数组是以内置对象的形式存在 数组定义01 var attr = new Array('...

  • 前端面试题(JS部分)

    内置类型 JS中分为七种内置类型,其中内置类型又分为两大类型: 基本类型 对象(Object) 基本类型有六种: ...

  • js 如何判断类型 2021-03-25

    js 中 数据类型分为基本类型与引用类型。JS的基本类型共有七种:bigInt(bigInt是一种内置对象,是处s...

  • JS基础系列(二): JS里的类型

    内置类型 JS中一共有七个内置类型: number string boolean undefined null o...

  • 前端面试题(一)JS篇

    内置类型 JS 中分为七种内置类型,七种内置类型又分为两大类型:基本类型和对象(Object)。 基本类型有六种:...

网友评论

      本文标题:js中的内置类型

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