ItIron2021
Javascript
昨天我们简单讨论了恼人的强制转型问题,今天让我们来面对最後一个型别相关的题目吧!
别担心,今天也是很简单的题目!
请说明你要如何检查一个变数的型别
老样子,这种时候就需要防雷图啦!
也许你看到这题目会觉得...这什麽烂东西? 不就用typeof就好了吗?
说得没错! typeof确实是个好帮手!
const name = 'Danny'
const age = 30
console.log(typeof name) // string
console.log(typeof age) // number
那麽...如果是这样的玩意呢?
console.log(typeof []) // ???
console.log(typeof {}) // ???
我想你应该猜到今天究竟要探讨什麽了,上述程序码的输出结果毫不意外的是object。那我们先简化一下问题吧!
你要如何判断一个变数不是阵列?
首先,在js中除了基本型别以外,实际上全都是物件,所以typeof就出局啦! 不过还是有一些方法可以协助你判断的,我们一个一个来看吧!
是的,若原生的javascript就有方法替你判别,那你又何苦自己刻一个函数呢! 不要重复造轮子是个蛮不错的准则,Array的原型下有个isArray的方法可以协助你辨别阵列。
console.log(Array.isArray(10)) // false
console.log(Array.isArray('Danny')) // false
console.log(Array.isArray([])) // true
console.log(Array.isArray({})) // false
console.log(Array.isArray(null)) // false
console.log(Array.isArray(undefined)) // false
我们在昨天的文章讲过,在许多资料型别的原型下都挂着toString方法,但都有所不同,其中Object.toString会提供我们更完整的资讯,所以罗! 最终的万用杀招就是把挂在Object底下的方法拿来使用! 同样以上方的题目作为例子(若你对於call还不够熟练也没关系,这系列文章在之後还是会提到的)
console.log(Object.prototype.toString.call([])) // [object Array]
console.log(Object.prototype.toString.call({})) // [object Object]
console.log(Object.prototype.toString.call(null)) // [object Null]
console.log(Object.prototype.toString.call(undefined)) // [object Undefined]
这麽一来就可以清楚地辨别所有的型别罗!
资料型别
本文章同步发布於个人部落格,有兴趣的朋友也可以来逛逛~!
<<: Day 9 - 条件,重复,回圈与互动 - 加入互动,随机性与状态
>>: 【Day 11】分类(Classification)(下)
var oDate = new Date(); var year = oDate.getFullYe...
工业控制网路 vs IT 资讯网路 管理目标 工业控制网路的设备需要高可用性,因为工厂设备若停摆,...
圣杯和双飞翼,是布局PC常见的方法。上下有header,footer,中间三栏center,left...
大家好我是乌木白,今天来向大家介绍GitHub,我自己很喜欢的一个可以做很多功能的网站!! 什麽是...
#背景: 有理工宅的身形但目前尚无无程序内涵的python初心者,本科系跟理工完全无关的非理工科系毕...