加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

JS中的toString()用法

发布时间:2020-12-14 23:52:00 所属栏目:资源 来源:网络整理
导读:toSting()方法,在JS中是一个十分常见的方法,因为所有的对象(除了null)都有这个方法(因为他是Object原型上的方法)。他最常用的功能就是将表达式的值转化为字符串,其实,这个方法不止是这个功能,还有其他多种多样的用法。 1.number转进制数 var num1 = 123

toSting()方法,在JS中是一个十分常见的方法,因为所有的对象(除了null)都有这个方法(因为他是Object原型上的方法)。他最常用的功能就是将表达式的值转化为字符串,其实,这个方法不止是这个功能,还有其他多种多样的用法。

1.number转进制数

var num1 = 123;
num1.toString(); ? // '123' 转变成十进制的字符串
123.toString(); ? ?//?Uncaught SyntaxError,哈哈报错了,有没有直接使用的方法呢,当然有
123..toString(); ? // '123'
123 .toStrimg(); ? // ‘123’ (有空格)

这似乎是最常见的方法。当我们需要将一个数值转换成2进制或8进制的时候怎么办?自己写个函数?其实不用。

3..toString(2) ? ?// ?'11' ?二进制11
11..toString(8)  ?// ?'13' ?八进制13
12..toString(16) ?// ?'c' ?十六进制12

这种情况下,进制转变就变得容易多了。

注:括号中的底数在2-36之间。

2.用于判断变量类型

在JS中,我们有typeof可以用来判断基本类型的变量,

typeof 123 ? ?//?"number"
typeof '123' ?//?"string"

可是遇到以下这种情况的话,typeof方法就没有什么用武之地了,

typeof [] ? ? // ?'object'
typeof {} ? ? // ?'object'
typeof new Number(11) ? ? // ?'object' ?这也是为什么创建基本类型变量时,不推荐用这种方法

此时,toString()就能够胜任这个任务了。

我们可以这样采用这个方法:

Object.prototype.toString.call([]) ?             ?// ? "[object Array]"
Object.prototype.toString.call({}) ?              // ??"[object Object]"
Object.prototype.toString.call(new Date) ?        //?  "[object Date]"
Object.prototype.toString.call(new Number(3423)) ?// ? "[object Number]"

这种情况下,类型十分清晰,将这两种情况合成,我们可以新创一个Typeof函数,来判断所有类型的变量。

function Typeof(arg1) {
    if (typeof arg1 != 'object') {
        return typeof arg1;
    } else {
        return Object.prototype.toString.call(arg1).slice(8,-1).toLowerCase();
    }
}

使用Typeof函数,就可以检测任何类型的变量了。

3.其他

当数组使用该方法时,会打印该数组中的值。

var arr = [1,2,3,4];
arr.toString() ? ? ? ? //?"1,4"

当布尔类型的调用该方法,会返回含布尔值的字符串

var bool = false;
bool.toString() ?  ? ? // ?'false'

当undefined调用时,会有个报错

var a = undefined;
a.toString(); ? ? ?   //?Uncaught TypeError
(a + '').toString() ? // 'undefined'

当null调用时也会报错

var a = null;
a.toString(); ? ? ?   //?Uncaught TypeError
(a + '').toString() ? // 'null'

当函数调用时,会打印整个函数的字符串形式

var fn = function() {
 console.log();
}
fn.toString() ? ? //?"function () {
? ? ? ? ? ? ? ? ? // ? ? console.log();
? ? ? ? ? ? ? ? ? // }"

当日期对象调用时,会打印当前时间

var time = new Date();
time.toString() ? ? ? ?//?"Mon Sep 05 2016 18:57:24 GMT+0800 (中国标准时间)"

综上,当null和undefined以及数字时会报错,所以兼容的方法就是

(a + '').toString()

这样的话,就不会出现报错现象了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读