《浅谈Object.prototype.toString.call(obj)功能及原理》
https://blog.csdn.net/hanyanshuo/article/details/104620122?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1-104620122-blog-115536202.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1-104620122-blog-115536202.pc_relevant_aa&utm_relevant_index=1
只是判断是否字符串的话,typeof就可以了,如果是文章里描述的一些其他类型,可以考虑使用Object.prototype.toString.call(obj)
字符串一般不用这样判断,直接用 typeof
就可以了,因为 js 里还可以创建字符串对象
const str = new String()
typeof str === 'object'
Object.prototype.toString.call(str) === '[object String]'
个人理解,因为直接 value.toString()的话,如果value是空,就出异常了,而用上面这种方式,如果value是空,不会出异常,并且 返回 '[object Null]'。
结案!