今天一位刚毕业的同事问了我一个问题,为什么这段代码执行结果是-1.代码如下:

var o = {valueOf: function(){return -1;}
};
o = +o;

当时我也是懵逼的,纳尼?没有调用valueOf方法,他怎么自己执行了。经过网上查阅,最终知晓了原因。

valueOf()方法和toString()方法是一样的,都会在后台进行隐式的调用,在 o = +o时,等号右边就已经调用了valueOf(),相当于 o = +(-1);所以,最终结果o为-1.

谨以此纪念长时间不看基础知识,导致的一些知识体系的漏洞。

大家共勉。

转载于:https://www.cnblogs.com/tincyho/p/9582680.html

js中valueOf方法的使用相关推荐

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

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

  2. JS中toFixed()方法的问题及解决方案

    JS中toFixed()方法的问题及解决方案 参考文章: (1)JS中toFixed()方法的问题及解决方案 (2)https://www.cnblogs.com/gushen/archive/201 ...

  3. js中toFixed方法的两个坑

    js中toFixed方法的两个坑 toFixed返回结果是string,后续使用它计算会错误 toFixed返回结果可能出现负零-0.00 toFixed返回结果是string,后续使用它计算会错误 ...

  4. Js中fetch方法

    Js中fetch方法 fetch()方法定义在Window对象以及WorkerGlobalScope对象上,用于发起获取资源的请求,其返回一个Promise对象,这个Promise对象会在请求响应后被 ...

  5. created写法_vue.js中created方法作用

    这是它的一个生命周期钩子函数,就是一个vue实例被生成后调用这个函数.一个vue实例被生成后还要绑定到某个html元素上,之后还要进行编译,然后再插入到document中.每一个阶段都会有一个钩子函数 ...

  6. 【转载】JS中bind方法与函数柯里化

    原生bind方法 不同于jQuery中的bind方法只是简单的绑定事件函数,原生js中bind()方法略复杂,该方法上在ES5中被引入,大概就是IE9+等现代浏览器都支持了(有关ES5各项特性的支持情 ...

  7. 前端开发:JS中join()方法的使用总结

    前言 在前端开发过程中,对数组的数据进行处理也是比较常见的操作之一,而且对数组进行操作的频率远远大于对 对象进行操作,因此在开发过程中对于数组里面的数据进行处理是一项比较重要的技能,尤其是对于刚入行的 ...

  8. vue在created调用点击方法_vue.js中created方法的使用详解

    这次给大家带来vue.js中created方法的使用详解,使用vue.js中created方法的注意事项有哪些,下面就是实战案例,一起来看一下. 这是它的一个生命周期钩子函数,就是一个vue实例被生成 ...

  9. Java中valueOf()方法

    Java中valueOf()方法 1.先看源代码怎么说: Returns an Integer object holding the value of the specified String,The ...

最新文章

  1. [leetcode-JavaScript]---23、合并K个排序链表
  2. 云服务器开启ftp_阿里云搭建wordpress 及部署java项目
  3. mybatis sql打印输出位置
  4. ExtJS学习:MVC模式案例(一)
  5. 我的asp.net学习心得
  6. 跟我一起玩Win32开发(20):浏览文件夹
  7. Java基础-Java中的内存分配与回收机制
  8. WVI职业价值观测量表
  9. python数据分析多久能学会_周末深夜,学妹说她想做Python数据分析师....
  10. php方法 隐藏手机号中间四位
  11. 1月5日 char **argv是什么用法啊?
  12. python各个模块
  13. Java-实现简单取色器
  14. python google地图_基于Python的离线Google地图操作实现.PDF
  15. 车道线检测数据集介绍
  16. 删除注册表里没用的服务
  17. MySQL生成测试数据相关脚本(持续更新)
  18. 科研——谷歌学术使用方法
  19. Win系统设置虚拟内存
  20. 微信自动加好友可以使用python实现

热门文章

  1. 申请互联网信息服务(ICP)经营许可证应具备的条件
  2. VBScript脚本语言基础
  3. [日语二级词汇]动词(3)
  4. 上云挑战及Mybase设计理念和关键特性
  5. Python数据分析之搭桥牵线
  6. S5PV210的中断处理机制详解
  7. Linux下mongodb安装配置教程
  8. 51单片机生成C语言矩形波,基于51单片机产生占空比和频率可调的方波信号发生器(附全部代码)...
  9. 在Cadence16.6中导入Logo
  10. 利用ArcGIS制作圈层分布图(以某一点作为中心)