valueOf()和toString()详解
// 对象在参与运算及比较的时候,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()详解相关推荐
- JS 中 valueOf() 方法的详解
JS 中 valueOf() 方法的详解 JavaScript 中的 valueOf() 方法用于返回指定对象的原始值,若对象没有原始值,则将返回对象本身.通常由JavaScript内部调用,而不是在 ...
- “空对象 {}” 与 “空数组 []” 的相加问题(详解)
本文旨在让读者能更加清晰地了解 "空对象 {}" 与 "空数组 ()" 相加(eg:"[] + []" ."[] + {}&quo ...
- Java之toString()方法详解
Java之toString()方法详解 Java中 toString()方法在Object类中和Intent类中都有定义,作用类似,但显示形式有点区别 一.Object类中toString()方法 t ...
- js中toString()和String()区别详解
转载自 js中toString()和String()区别详解 我们知道String()与 .toString()都是可以转换为字符串类型,但是String()与 .toString()的还是有区别的 ...
- java tostring格式化日期_java日期格式化SimpleDateFormat的使用详解
日期和时间格式由 日期和时间模式字符串 指定.在 日期和时间模式字符串 中,未加引号的字母 'A' 到 'Z' 和 'a' 到 'z' 被解释为模式字母,用来表示日期或时间字符串元素.文本可以使用单引 ...
- 处理对象(toString()方法详解和==与equals方法的区别)
处理对象(toString()方法详解和==与equals方法的区别) toString()是一个非常特殊的方法,它是一个自我描述的方法.当程序员直接打印该对象的时候,系统会输出该对象的"自 ...
- 最全ToString(“X2“)和ToString(“X“)详解含义及使用
ToString("X2") 为C#中的字符串格式控制符 大写X:ToString("X2")即转化为大写的16进制. 小写x:ToString("x ...
- 泛型java 代码讲解_Java泛型详解
2516326-5475e88a458a09e4.png 一,打破砂锅问到底 泛型存在的意义? 泛型类,泛型接口,泛型方法如何定义? 如何限定类型变量? 泛型中使用的约束和局限性有哪些? 泛型类型的继 ...
- 万字长文的Redis五种数据结构详解(理论+实战),建议收藏。
本文脑图 前言 Redis是基于c语言编写的开源非关系型内存数据库,可以用作数据库.缓存.消息中间件,这么优秀的东西一定要一点一点的吃透它. 关于Redis的文章之前也写过三篇,阅读量和读者的反映都还 ...
最新文章
- php怎么读取图片并输出,php读取图片内容并输出到浏览器的实现代码_PHP教程
- raster java_Raster
- 企业网络推广——企业网络推广表示网站优化少不了这三大技能
- 粤东农批项目座谈会 农业大健康·李喜贵:功能性农业差异化加工
- 基于XML的AOP实现事务控制
- centos 6.5 防火墙开放指定端口
- Gym 102798A(思维) acm寒假集训日记21/12/31or22/1/1
- scrapy保存、中断、继续执行爬虫程序
- (算法)最长回文子串
- 如何从手机上做风控,设备指纹如何下手?
- mysql 5.6参数_初识 MySQL 5.6 新功能、参数
- HDU3017:Lucas定理及详解
- 【Python】在Windows 10 中,安装django-bootstrap-modal-forms
- pg客户端连接报错:不支援 10 验证类型。请核对您已经组态 ..
- python中imag是什么意思_Python-在imag中查找主要/最常见的颜色
- ZYNQ图像处理(4)——灰度图像转二值化图像
- Azure BareMetal 裸金属
- php laravel商品sku功能
- 仿天猫商城html网页源码
- 操作系统-进程调度(HRRN和RR)
热门文章
- html5直播api,HTML5 VideoAPI,打造自己的Web视频播放器
- 今日讨论:时间紧,工作量太大,作为测试该怎么办?
- 21天Jenkins打卡Day14-maven服务
- mesh 协调器 路由器_北京无线路由收发器C32MESH
- jmeter监听器你真的会用了吗?每天早下班1小时的技巧来了~
- 你是如何找到自己的第一份测试工作的?
- 常用基本控件测试用例(一)
- 计算机图形学是指使用计算机通过,【填空题】计算机图形学是指使用计算机通过()在显示设备上构造出图形来。...
- 栈溢出脚本_污点分析挖掘漏洞演示——如何在8小时内从零发现cve20120158(word溢出漏洞)...
- java操作mysql数据库实例_jdbc操作mysql数据库实例