toPrimitive方法使用

toPrimitive方法对于不同类型的返回结果

   1基本类型直接返回,基本类型的值

    2对象,  a如果对象的ValueOf方法的结果是原始值,返回原始值。

                   b如果对象的toString方法返回原始值,就返回这个值;

                   其他情况都返回一个错误

   用例子来验证一下结果,首先我们知道下面的代码输出true(字符串长度大于1);

  console.log('packet'?true:false)

  那么这行代码结果呢?

  console.log('packet' == true)

  输出是false,为什么会这样呢?

  1首先,布尔值会被toNumber方法转成数字,因此得到packet == 1

  2其次,用toNumber转换字符串。因为字符串包含有字母,所以会转成NaN,

  表达式就变成了NaN == 1,结果就是false.

  那么这行代码的结果呢?

  console.log('packet' == false)

  输出也是false.步

 

posted @ 2019-04-02 11:34  小安排  阅读(2910)  评论(1编辑  收藏  举报