js类型校验的三种方法

前端题目录

js校验数据类型

typeof 运算符返回变量或表达式的类型
console.log(typeof 1);             // number
console.log(typeof "string");      // string
console.log(typeof false);         // boolean
console.log(typeof NaN);           // number
console.log(typeof undefined);     // undefined
console.log(typeof null);          // object
console.log(typeof new Object());  // object
console.log(typeof new Array());   // object
console.log(typeof [1,2]);         // object
console.log(typeof function(){});  // function
console.log(typeof new Date());    // object

constructor 属性返回所有 JavaScript 变量的构造器函数。可以区分数组,对象,Date, 函数。但是null,undefined会报错。

console.log("Bill".constructor );                   // 返回  [Function: String]     
console.log((3.14).constructor );                   // 返回  [Function: Number]
console.log(false.constructor );                    // 返回 [Function: Boolean]
console.log([1,2,3,4].constructor );                // 返回 [Function: Array]
console.log({name:'Bill', age:62}.constructor );    // 返回[Function: Object]
console.log(new Date().constructor );               // 返回 [Function: Date]
console.log(function () {}.constructor );           // 返回 [Function: Function]

console.log(null.constructor );         // 报错
console.log(undefined.constructor );    // 报错
Object.prototype.toString 方法返回一个表示该对象的字符串
const getType = (obj) => {
  return Object.prototype.toString.call(obj).slice(8, -1)
}

console.log(getType(1));          // Number
console.log(getType(() => { }))   // Function
console.log(getType(undefined))   // Undefinde
console.log(getType(null))        // Null
console.log(getType('1234'))      // String
console.log(getType(false))       // Boolean
console.log(getType(new Date()))  // Date
console.log(getType(NaN))         // Number
console.log(getType(new Array))   // Array

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值