当前位置: 首页 > 后端技术 > Node.js

【每日一问】node.js中如何判断类型?

时间:2023-04-03 11:00:27 Node.js

JavaScript中的类型在ECMAScript标准中,一共有八种数据类型:7种基本类型BooleanNullUndefinedNumberBigIntStringSymbolObject那么问题来了,这些类型应该怎么判断呢?下面是node中判断以上类型的相关代码(BigInt除外),基本都是根据typeof来判断的。说到typeof,就不得不提到下面这个话题:知识储备typeofreturnsvaluefornulltypeerror下面直接引用MDN对null错误的解释,考古传送门,所以下面的代码是针对typeofnull的问题==='object',有点兼容。还有一个问题就是上面的定义中,有七种原始类型,那么问题来了:什么是原始类型?MDN中的解释是:除了Object之外的所有类型都是不可变的(值本身不能改变)。例如,与C不同,JavaScript中的字符串是不可变的。我们将这些类型的值称为“原始值”。知识储备完成后,我们开始判断类型:node.js中如何判断原始类型来判断源码?函数isPrimitive(arg){返回arg===null||(typeofarg!=='object'&&typeofarg!=='function');}如何判断布尔类型?functionisBoolean(arg){returntypeofarg==='boolean';}如何判断null?functionisNull(arg){returnarg===null;}如何判断undefined?functionisUndefined(arg){returnarg===undefined;}如何判断null或undefined?函数isNullOrUndefined(arg){返回arg===null||arg===undefined;}如何判断数字类型?functionisNumber(arg){returntypeofarg==='number';}如何判断字符串类型?functionisString(arg){returntypeofarg==='string';}如何判断符号类型?functionisSymbol(arg){returntypeofarg==='symbol';}如何判断对象类型?functionisObject(arg){returnarg!==null&&typeofarg==='object';}如何判断是函数?functionisFunction(arg){returntypeofarg==='function';}以上代码在仓库节点代码入口的位置