IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 怎么判断一个数据类型? -> 正文阅读

[JavaScript知识库]怎么判断一个数据类型?

感觉好久没写东西了。什么原因呢,有原因是因为浮躁了一段时间,有原因是因为去了其他网站,哈哈。总归就是懒得。
开头俩句是早上10写得,现在是晚上的22.16分
中间摸了鱼,开了会,骂了街,拨开云雾,终于看懂了困扰的问题
于是再回来,写一写,自己记一记。
每每看到一些东西感觉简单却不会的时候,就想起之前前辈对我的一句评价,差的很远,哈哈哈

开始 – (问 : 为什么面试官会问这个问题?判断数据类型难吗?有技术含量吗?我答的对吗)

答 : 这个问题像是一个综合开放题,你知道的越多,答的越多,知道的少,直接底裤看穿。事实证明面试官一般并不蠢,蠢的是自己,如果你是个小白,看到这个问题,张口就来typeof 判断数据类型,那种自信,那种不可置信怎么会有这种问题, 那你基本就g了。type of 是能判断number string bool undefined function没毛病, 或许你还知道个null,出来是object , 但是你可能不知道是不是还有你会用到的Date , 校验(RegExp --regular expression) , error , Arguments , array ,是不是懵了,其实还有其他的,但是目前答到这里,我感觉就差不多了 。

数据类型(问:js的数据类型)

回答:bool number string object null array undefined symbol
太low 了,真的太low了 这种就是最简单的
回答:基本数据类型:number string bool undefined Symbol null 引用数据类型 array function object
普low
回答 : 存放在栈中的基本数据类型 number string bool undefined Symbol null,存在堆中的object的普通对象,以及 RegExp , error,array(你可以new Array(),Date ,arguments 以及在队列中的function ,其实function 也是一个对象,函数对象,同样可以new Function()。 有点做作,但是轻描淡写,谦虚一点,我觉得成,这里我觉得至少自己得明白。

typeof(typeof 能做什么 不能做什么)

上面也说了 数据这么多 typeof有可以判断的 也有他判断不了的 比如null function array Date typeof它给不了答案或者给不了我们满意的答案

console.log(typeof und);  // undefined
console.log(typeof nul);  // object
console.log(typeof boo);  // boolean
console.log(typeof num);  // number
console.log(typeof str);  // string
console.log(typeof obj);  // object
console.log(typeof arr);  // object
console.log(typeof fun);  // function
console.log(typeof date);  // object
console.log(typeof reg);  // object
console.log(typeof err);  // object
console.log(typeof arg);  // object

这里就可以看到 为什么type of为什么不行 ,至于为什么null返回的是object , 因为是js的bug,具体bug就太细了, 我也说不明白

了解typeof缺陷之后怎么解决(Object.prototype.toString)

这里就看到面试官多调了,人就其实就是想问你这个,除了对数据类型的了解,就是原形链,以及call applay this指向 , 或多或少 这个问题里 都给你安排上了
然后就是考你对象原形链上的toString方法了

var toString=Object.prototype.toString;

console.log(toString.call(und));  // [object Undefined]
console.log(toString.call(nul));  // [object Null]
console.log(toString.call(boo));  // [object Boolean]
console.log(toString.call(num));  // [object Number]
console.log(toString.call(str));  // [object String]
console.log(toString.call(obj));  // [object Object]
console.log(toString.call(arr));  // [object Array]
console.log(toString.call(fun));  // [object Function]
console.log(toString.call(date));  // [object Date]
console.log(toString.call(reg));  // [object RegExp]
console.log(toString.call(err));  // [object Error]
console.log(toString.call(arg));  // [object Arguments]

最终答案

function type(obj) {
  return typeof obj !== "object" ? typeof obj : Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();
}

toString 还有其他的用法,自己也不是很了解,还需要学习,这里就是我对这个问题自己的视角和分享啦

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-25 10:29:45  更:2022-01-25 10:31:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:49:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码