JS对象到字符串和数字的转换

这里的js对象到字符串和数字的转化规则只适用于本地对象。什么是本地对象?本地对象也叫做内置对象,也就是JS标准规范定义的对象或类。比如:object,Array,function,data,global。还有一类对象是宿主对象,宿主对象是有一个寄生的对象和环境的对象。在JS中,宿主对象一般寄宿在浏览器中。比如 event,BOM和DOM对象都是。

对象到字符串的转换

  • 如果对象有toString方法,调用toString方法,如果返回一个原始值,将这个原始值转换为字符串作为结果。
  • 如果对象没有toString()方法或者返回值不是原始值,javascript寻找对象的valueOf()方法,如果存在就调用它,返回结果是原始值则转为字符串作为结果 。
  • 如果javascript不能从toString()或者valueOf()获得一个原始值,此时throws a TypeError

对象到数字的转换

  • 如果对象有valueOf()方法并且返回元素值,javascript将返回值转换为数字作为结果 。
  • 如果对象有toString()并且返回原始值,javascript将返回结果转换为数字作为结果 。
  • 否则throws a TypeError。

    一个关于对象转换的demo

         const a={
                i:1,
                toString:function(){
                    return a.i++;
                }
            }

            if(a==1&&a==2&&a==3){
                console.log("hello world!");
            }
打印出: hello world!
这个代码的考点就是在进行判断a==1的时候,进行了对象到数字的转换规则。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值