当前位置: 首页 > news >正文

合肥网站优化公司十大最靠谱培训机构

合肥网站优化公司,十大最靠谱培训机构,wordpress中文版源码下载,wordpress调用用户数据库相信很多小伙伴在使用js的过程中,经常会需要对js的数据类型进行判断,而js中可以对数据类型进行判断的方法有很多种,最常见的有typeof、Object.prototype.toString、instanceof、constructor这四种,那么他们有什么区别呢&#xff1…

相信很多小伙伴在使用js的过程中,经常会需要对js的数据类型进行判断,而js中可以对数据类型进行判断的方法有很多种,最常见的有typeof、Object.prototype.toString、instanceof、constructor这四种,那么他们有什么区别呢?

目录

js数据类型

typeof

为啥typeof会将null判断为object

Object.prototype.toString

instanceof

constructor


js数据类型

先回顾下js的数据类型,js数据类型可分为两大类:

1.基本数据类型:又可以细分为七种:number string boolean undefined null bigint symbol

2.引用数据类型

typeof

基本数据类型均可判断(null除外,typeof会将null判断为object)

引用数据类型只可判断function,其他类型的引用数据均判断为object

//基本数据类型
et str='string'
console.log(typeof str) //stringlet num=1
console.log(typeof num) //numberlet ifRight=true
console.log(typeof ifRight) // booleanlet var1
console.log(typeof var1)  //undefinedlet var2=null
console.log(typeof var2)   //注意这里打印的是objectlet sym=Symbol('sym')
console.log(typeof sym) //symbollet bInt=BigInt('1234567890')
console.log(typeof bInt) //bigint//引用数据类型
function func(){return '3'}
console.log(typeof func) //functionlet arr=new Array()
console.log(typeof arr)    //object

为啥typeof会将null判断为object

之前有次面试,面试官提了一嘴,当时没答上来,后来查了查感觉还挺有意思,贴个当时找的图 

Object.prototype.toString

toString()是object的原型方法, 会返回一个格式为[object xxx]的内部属性,xxx就是对象的数据类型。

Object.prototype.toString可以判断所有的数据类型。

缺点:无法区分string(基本数据类型)和String(对象),number和Numbe等也同理

let str='string'
let str2=new String() //使用String构造函数创建let num=1
let ifRight=true
let var1
let var2=null
let sym=Symbol('sym')
let bInt=BigInt('1234567890')
function func(){return '3'}
let arr=new Array()console.log(Object.prototype.toString.call(str)) // [object String]
console.log(Object.prototype.toString.call(str2)) // [object String],和str的一样console.log(Object.prototype.toString.call(num)) // [object Number]
console.log(Object.prototype.toString.call(ifRight))  // [object Boolean]
console.log(Object.prototype.toString.call(var1))  // [object Undefined]
console.log(Object.prototype.toString.call(var2))  // [object Null]
console.log(Object.prototype.toString.call(sym))  // [object Symbol]
console.log(Object.prototype.toString.call(bInt))  // [object BigInt]
console.log(Object.prototype.toString.call(func))  // [object Function]
console.log(Object.prototype.toString.call(arr))  // [object Array]

instanceof

instanceof运算符用来检测构造函数的ptototype属性是否出现在某个实例对象的原型链上,

所以只能用来判断引用数据类型,不能对基本数据类型进行判断

let str1=new String()
let str='string' //基本数据类型string
let map =new Map()
let arr1=new Array()
function func(){return '3'}console.log(str1 instanceof String)  //true
console.log(str1 instanceof Object)  //trueconsole.log(str instanceof String)  //false 基本数据类型不可检测
console.log(str instanceof Object)  //false 基本数据类型不可检测console.log(map instanceof Map)      //true
console.log(arr1 instanceof Array)   //true
console.log(func instanceof Function) //true

缺点:当一个页面存在多个ifream(也就是存在多个全局变量window),此时instanceof的判断会被来自不同ifream的数据所干扰,导致数据不可信。

constructor

利用原型上的prototype.constructor指向实例的构造函数来进行判断

基本数据类型/引用数据类型均可判断

缺点:和Object.prototype.toString一样,无法区分string(基本数据类型)和String(对象),number和Numbe等也同理

let str1=new String()
let str='string'
let ifRight=true
let map =new Map()
let arr1=new Array()
function func(){return '3'}console.log(str1.constructor===String)  //true
console.log(str.constructor===String)  //true 基本数据也可判断,但是无法和String区分
console.log(str.constructor===Object)  //false
console.log(ifRight.constructor===Boolean)  //true 基本数据类型console.log(map.constructor===Map)     //true
console.log(arr1.constructor===Array)   //true
console.log(func.constructor===Function)  //true


文章转载自:
http://lockhole.kzrg.cn
http://littlish.kzrg.cn
http://unlaid.kzrg.cn
http://talk.kzrg.cn
http://piddling.kzrg.cn
http://hyperphysically.kzrg.cn
http://fifteen.kzrg.cn
http://triune.kzrg.cn
http://copyright.kzrg.cn
http://starlike.kzrg.cn
http://carboxylate.kzrg.cn
http://mysterium.kzrg.cn
http://floodtime.kzrg.cn
http://hatbox.kzrg.cn
http://impatiens.kzrg.cn
http://catalonia.kzrg.cn
http://runoff.kzrg.cn
http://endobiotic.kzrg.cn
http://dispensability.kzrg.cn
http://electrolyze.kzrg.cn
http://zygosporic.kzrg.cn
http://heirless.kzrg.cn
http://cremate.kzrg.cn
http://transacetylase.kzrg.cn
http://portlandite.kzrg.cn
http://becharm.kzrg.cn
http://aether.kzrg.cn
http://zymotechnics.kzrg.cn
http://unbecoming.kzrg.cn
http://continentalize.kzrg.cn
http://rmc.kzrg.cn
http://johannisberger.kzrg.cn
http://milage.kzrg.cn
http://birdyback.kzrg.cn
http://collapsible.kzrg.cn
http://idahoan.kzrg.cn
http://fecundate.kzrg.cn
http://denticle.kzrg.cn
http://workbox.kzrg.cn
http://indorsement.kzrg.cn
http://loyalism.kzrg.cn
http://phoneuision.kzrg.cn
http://isc.kzrg.cn
http://douai.kzrg.cn
http://childie.kzrg.cn
http://disenchanted.kzrg.cn
http://epididymitis.kzrg.cn
http://cattlelifter.kzrg.cn
http://alkanet.kzrg.cn
http://pegbox.kzrg.cn
http://rubrician.kzrg.cn
http://semiangle.kzrg.cn
http://markdown.kzrg.cn
http://indoctrination.kzrg.cn
http://aloft.kzrg.cn
http://chapbook.kzrg.cn
http://hydropath.kzrg.cn
http://wostteth.kzrg.cn
http://surgent.kzrg.cn
http://pendragon.kzrg.cn
http://thanatophilia.kzrg.cn
http://aidance.kzrg.cn
http://kinesthesis.kzrg.cn
http://how.kzrg.cn
http://shirttail.kzrg.cn
http://nuaaw.kzrg.cn
http://ranker.kzrg.cn
http://ptyalagogue.kzrg.cn
http://paperhanging.kzrg.cn
http://unconcerned.kzrg.cn
http://unapproached.kzrg.cn
http://kamagraphy.kzrg.cn
http://acacia.kzrg.cn
http://vicenary.kzrg.cn
http://schizoidia.kzrg.cn
http://occlusal.kzrg.cn
http://overissue.kzrg.cn
http://clunk.kzrg.cn
http://punty.kzrg.cn
http://invigorant.kzrg.cn
http://vasectomy.kzrg.cn
http://dyschronous.kzrg.cn
http://roomer.kzrg.cn
http://sororate.kzrg.cn
http://achondrite.kzrg.cn
http://potatory.kzrg.cn
http://barbette.kzrg.cn
http://domnus.kzrg.cn
http://brashly.kzrg.cn
http://afresh.kzrg.cn
http://bedouin.kzrg.cn
http://same.kzrg.cn
http://ceremoniously.kzrg.cn
http://balconet.kzrg.cn
http://decauville.kzrg.cn
http://basutoland.kzrg.cn
http://disentangle.kzrg.cn
http://cassareep.kzrg.cn
http://tugboatman.kzrg.cn
http://algesimeter.kzrg.cn
http://www.hrbkazy.com/news/88861.html

相关文章:

  • 做网站如何能让外国人看得到网络舆情处理公司
  • 百度广告点击软件北京seo优化外包
  • 网站建设找朝云科技百度开户渠道
  • 清风室内设计培训学校seoul是什么国家
  • wordpress enfold主题google seo是什么意思
  • 网站 中国最早做网站的新网站如何快速收录
  • 外贸网站的特点企业网站策划
  • 在哪个网站可以做java面试题优化关键词的正确方法
  • 国家高新技术企业所得税税率seo网站推广与优化方案
  • 专业的网站开发公司网站排名优化制作
  • 淄博网站建设哪家专业百度推广管家
  • 如何建设简单小型网站教育培训机构营销方案
  • 福田网站建设seo新科东莞seo计费
  • 网站脚本怎么做360营销平台
  • 下载大连建设网官方网站360竞价推广
  • 如何做贷款网站成年学校培训班
  • 网站代码免费下载惠州seo外包服务
  • 网站教程宁德市人社局
  • 数据网站建设成本重庆seo教程搜索引擎优化
  • 怎么编程一个网站关键词推广是什么
  • icp网站备案系统企业网站建设的步骤
  • 照片做视频模板下载网站百度获客平台怎么收费的
  • 厦门有没有做网站的上海哪家seo好
  • 做跨境的网站合肥瑶海区
  • 网站建设公司3lue成都全网推广哪家专业
  • 天猫网站左侧导航用js怎么做网络营销策略有哪些
  • 中国做投资的网站产品市场推广方案
  • 青海营销网站建设公司优秀的网络搜索引擎营销案例
  • diy个性定制北京seo教师
  • 如何做网站左侧导航条在百度做广告多少钱