美文网首页
js 使用toSting

js 使用toSting

作者: 鹏雨燕 | 来源:发表于2020-05-14 10:56 被阅读0次
10.toString(); //"10"
(10).toString(2); //10进制转2进制 1010

const arr=[1,2,3];
Object.prototype.toString.call(arr); //"[object Array]" 
Array.prototype.toString.call(arr); //1,2,3
[1,2].toString(); // "1,2"  得到字符串

在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object”,“function”,“symbol” (ES6新增)七种。

数组、null、对象,使用 typeof 都会统一返回 “object” 字符串。所以我们用toString

js中的对象都继承自Object,所以当我们在某个对象上调用一个方法时,会先在该对象上进行查找,如果没找到则会进入对象的原型(也就是.prototype)进行查找,如果没找到,同样的也会进入对象原型的原型进行查找,直到找到或者进入原型链的顶端Object.prototype才会停止。
当我们使用arr.toString()时,不能进行复杂数据类型的判断,因为它调用的是Array.prototype.toString,虽然Array也继承自Object,但js在Array.prototype上重写了toString,而我们通过toString.call(arr)实际上是通过原型链调用了Object.prototype.toString。

console.log(Object.prototype.toString.call('123'));    //[object String]
console.log(Object.prototype.toString.call(undefined));    //[object Undefined]
console.log(Object.prototype.toString.call(true));    //[object Boolean]
console.log(Object.prototype.toString.call({}));    //[object Object]
console.log(Object.prototype.toString.call([]));    //[object Array]
console.log(Object.prototype.toString.call(function(){}));    //[object Function]
console.log(Object.prototype.toString.call(null));    //[[object Null]]

备注:了解symbol见阮一峰Symbol文档

相关文章

  • js 使用toSting

    在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”stri...

  • Scala中的toString与apply的区别

    1 介绍toString 首先,scala中的toString和java中的toSting 一样的,scala基于...

  • JS的基本语法

    JS的基本输出 JS修改Html JS对话框 JS的函数基本使用 JS循环的使用 JS的选择语句

  • Vuex使用

    model-manage.js main.js: 使用state: 使用mutations 使用getter 使用...

  • js里面的对象

    全局对象window全局函数公共的属性藏在哪toSting哪来的-原型链 全局对象window ECMAScrip...

  • toString()与String()的比较

    介绍 String()与.toSting()都是转化为字符串类型 区别 .toString()可以将所有的的数据都...

  • JavaScript学习

    今日任务 使用JS完成页面定时弹出广告 使用JS完成表单的校验 使用JS完成表格的隔行换色 使用JS完成复选框的全...

  • JavaScript-总结篇之变量类型

    JS中使用typeof能得到哪些类型? 何时使用===何时使用==? JS中有哪些内置函数? JS变量按照存储方式...

  • Weex&ReactNative对比

    JS引擎: weex使用V8, ReactNative使用JSCore JS开发框架: weex基于vue.js(...

  • 浏览器打印功能

    使用的是print.js在main.js里引入 页面使用 print.js文件

网友评论

      本文标题:js 使用toSting

      本文链接:https://www.haomeiwen.com/subject/rjwznhtx.html