// 对象在参与运算及比较的时候,js引擎会自动的帮我们去调用这两个方法.// 调用规则://  1. 默认先调用valueOf方法(valueOf 来源于 Object的原型),尝试把对象转成简单数据类型,2. 如果没有得到简单数据类型,再继续去调用toString方法//  作用: 将对象转成原始值(简单数据类型),但是Object原型上的valueOf达不到目的, 把对象自身给返回了/*  var arr = [1,2,3];console.log(arr + 1); // 1,2,31//  arr.valueOf()  ==> arr//  arr.toString() ==> "1,2,3"//  "1,2,3" + 1    ==> "1,2,31"console.log(arr - 0); // NaN  // "1,2,3" - 0console.log(arr + "6班学习好努力"); // 1,2,36班学习好努力*/// var obj = {//     name: "lw"// };// console.log(obj * 1);  // NaN // obj.valueOf() ==> obj// obj.toString() ==> "[object Object]"// "[object Object]" * 1// console.log(obj + "1");  // [object Object]1// console.log([] == ![]);  // true//  [] == false  ==> 都转数值进行比较//  [].valueOf() ==> []//  [].toString()  ==> ""//  +""  ==> 0//  console.log({} == !{});// {} == false   ==> 都转数值进行比较// {}.valueOf()  ==> {}// {}.toString() ==> "[object Object]"// +"[object Object]" ==> NaN (字符串转成数值 ===>  NaN, 不是一个数字)例1:// var obj = {};// console.log(obj.toString()); // "[objectObject]"例2:// var a = {},// b = { key: 'b' };// c = { key: 'c' };// a[b] = 123;// a[c] = 456;// console.log(a[b]);   //456// 给如果对象的属性类型不是一个字符串时,就会去转换.// js会自动让对象去调用这两个方法,默认先valueOf(),如果没有得到简单数据类型,再去调用toString()// 其中对象a中的属性 b ==> "[object,Object]" ,等同于 给对象a,使用[]语法,去添加属性并赋值// 再看对象a中的属性 c ==> "[object,Object]" ,等同于 修改同一个属性的属性值,所以最终的到的结果是456复制代码

valueOf()和toString()详解相关推荐

  1. JS 中 valueOf() 方法的详解

    JS 中 valueOf() 方法的详解 JavaScript 中的 valueOf() 方法用于返回指定对象的原始值,若对象没有原始值,则将返回对象本身.通常由JavaScript内部调用,而不是在 ...

  2. “空对象 {}” 与 “空数组 []” 的相加问题(详解)

    本文旨在让读者能更加清晰地了解 "空对象 {}" 与 "空数组 ()" 相加(eg:"[] + []" ."[] + {}&quo ...

  3. Java之toString()方法详解

    Java之toString()方法详解 Java中 toString()方法在Object类中和Intent类中都有定义,作用类似,但显示形式有点区别 一.Object类中toString()方法 t ...

  4. js中toString()和String()区别详解

    转载自  js中toString()和String()区别详解 我们知道String()与 .toString()都是可以转换为字符串类型,但是String()与 .toString()的还是有区别的 ...

  5. java tostring格式化日期_java日期格式化SimpleDateFormat的使用详解

    日期和时间格式由 日期和时间模式字符串 指定.在 日期和时间模式字符串 中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素.文本可以使用单引 ...

  6. 处理对象(toString()方法详解和==与equals方法的区别)

    处理对象(toString()方法详解和==与equals方法的区别) toString()是一个非常特殊的方法,它是一个自我描述的方法.当程序员直接打印该对象的时候,系统会输出该对象的"自 ...

  7. 最全ToString(“X2“)和ToString(“X“)详解含义及使用

    ToString("X2") 为C#中的字符串格式控制符 大写X:ToString("X2")即转化为大写的16进制. 小写x:ToString("x ...

  8. 泛型java 代码讲解_Java泛型详解

    2516326-5475e88a458a09e4.png 一,打破砂锅问到底 泛型存在的意义? 泛型类,泛型接口,泛型方法如何定义? 如何限定类型变量? 泛型中使用的约束和局限性有哪些? 泛型类型的继 ...

  9. 万字长文的Redis五种数据结构详解(理论+实战),建议收藏。

    本文脑图 前言 Redis是基于c语言编写的开源非关系型内存数据库,可以用作数据库.缓存.消息中间件,这么优秀的东西一定要一点一点的吃透它. 关于Redis的文章之前也写过三篇,阅读量和读者的反映都还 ...

最新文章

  1. php怎么读取图片并输出,php读取图片内容并输出到浏览器的实现代码_PHP教程
  2. raster java_Raster
  3. 企业网络推广——企业网络推广表示网站优化少不了这三大技能
  4. 粤东农批项目座谈会 农业大健康·李喜贵:功能性农业差异化加工
  5. 基于XML的AOP实现事务控制
  6. centos 6.5 防火墙开放指定端口
  7. Gym 102798A(思维) acm寒假集训日记21/12/31or22/1/1
  8. scrapy保存、中断、继续执行爬虫程序
  9. (算法)最长回文子串
  10. 如何从手机上做风控,设备指纹如何下手?
  11. mysql 5.6参数_初识 MySQL 5.6 新功能、参数
  12. HDU3017:Lucas定理及详解
  13. 【Python】在Windows 10 中,安装django-bootstrap-modal-forms
  14. pg客户端连接报错:不支援 10 验证类型。请核对您已经组态  ..
  15. python中imag是什么意思_Python-在imag中查找主要/最常见的颜色
  16. ZYNQ图像处理(4)——灰度图像转二值化图像
  17. Azure BareMetal 裸金属
  18. php laravel商品sku功能
  19. 仿天猫商城html网页源码
  20. 操作系统-进程调度(HRRN和RR)

热门文章

  1. html5直播api,HTML5 VideoAPI,打造自己的Web视频播放器
  2. 今日讨论:时间紧,工作量太大,作为测试该怎么办?
  3. 21天Jenkins打卡Day14-maven服务
  4. mesh 协调器 路由器_北京无线路由收发器C32MESH
  5. jmeter监听器你真的会用了吗?每天早下班1小时的技巧来了~
  6. 你是如何找到自己的第一份测试工作的?
  7. 常用基本控件测试用例(一)
  8. 计算机图形学是指使用计算机通过,【填空题】计算机图形学是指使用计算机通过()在显示设备上构造出图形来。...
  9. 栈溢出脚本_污点分析挖掘漏洞演示——如何在8小时内从零发现cve20120158(word溢出漏洞)...
  10. java操作mysql数据库实例_jdbc操作mysql数据库实例