您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > javascript

javascript 类型的隐式转换

时间:2019-11-06 11:47:41  来源:  作者:

先看一道面试题 让 a==1&&a==2&&a==3,这个问题主要查看对js隐式转换的理解,首先a不可能是一个原始类型,那么a只有可能是个对象类型了,查阅犀牛书52页《3.8.3对象转换为原始值》章节得知,对象转换到字符串或者数字类型调用了toString()和valueOf()两个方法中的一个,具体细节如下

  1. 对象转换为字符串

如果对象具有toString()方法,则调用这个方法,如果它返回一个原始值,将这个值转换为字符串类型,例如:

javascript 类型的隐式转换

对象转换为字符串例子1

如果对象没有toString()方法,或者这个方法并不返回一个原始值,那么就调用valueOf()方法,如果valueOf()返回原始值,则将它转换为字符串类型,例如:

javascript 类型的隐式转换

对象转换为字符串例子2

对象转换为数字的过程调用valueOf()方法返回一个原始值,并转换为数字类型,如果没有valueOf()方法,则调用toString()方法,过程同对象转换为字符串相似

javascript 类型的隐式转换

对象转换为数字例子

详细的js类型转换方式看下表格:

javascript 类型的隐式转换

 


javascript 类型的隐式转换

 

== 相等比较

  1. 一个值是undefined,另一个值是null,则它们相等,即 undefined == null;
  2. 一个值是数字,另一个值是字符串,则先将字符串转换为数字,然后比较, '123' == 123 转换为123 == 123 // true
  3. 如果有一个是true,则先转换为1,再比较,false则转换为0再比较
  4. 如果有一个是对象,另一个是原始类型,见本章所述

=== 相等比较

  1. 先查看类型是否相等,不相等就false
  2. null === undefined // false
  3. NaN === NaN // false
  4. 0 === -0 // true
  5. 先查看类型是否相等,不相等就false,相等就查看值是否相等,原始类型比较的是值,对象类型则比较地址是否相等,不相等就false,相等就true

各位观众老爷,以上文章和图片若有看不明白的地方可以私聊或者留言



Tags:javascript   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除,谢谢。
▌相关推荐
在执行JavaScript代码之前,js引擎首先会对其进行解析和编译。在编译阶段,变量和函数声明被放入内存,这被称为提升(hoisting)。...【详细内容】
2021-06-23  Tags: javascript  点击:(24)  评论:(0)  加入收藏
在日常工作中,文件上传是一个很常见的功能。在某些情况下,我们希望能限制文件上传的类型,比如限制只能上传 PNG 格式的图片。针对这个问题,我们会想到通过 input 元素的 accept...【详细内容】
2021-06-10  Tags: javascript  点击:(43)  评论:(0)  加入收藏
JavaScript 判断数组的几种方法及其利弊。1. typeof对于 Function、String、Number、Undefined 等几种类型的对象来说,他完全可以胜任。但是为 Array 时:var arr = [1, 2, 3]c...【详细内容】
2021-03-22  Tags: javascript  点击:(140)  评论:(0)  加入收藏
本文最初发表于 v8.dev(Faster JavaScript calls),基于 CC 3.0 协议分享,由 InfoQ 翻译并发布。JavaScript 允许使用与预期形式参数数量不同的实际参数来调用一个函数,也就是传递...【详细内容】
2021-02-23  Tags: javascript  点击:(88)  评论:(0)  加入收藏
千呼万唤的全球2020的JS报告终于出来了。 我们来看看这一个糟糕却又不平凡的一年,JS发生了什么样的变化。 尽管2020年很糟糕,但 JavaScript 作为一个整体仍然设法向前发展。随...【详细内容】
2021-01-14  Tags: javascript  点击:(110)  评论:(0)  加入收藏
我们以一个例子出发,在工作中我们可能写出以下的代码:这是一段让数组中的全部项变成大写的代码这段代码看起来好像也没有什么问题,阅读起来也很清晰,但是总是让人觉得好像有点长...【详细内容】
2020-12-24  Tags: javascript  点击:(57)  评论:(0)  加入收藏
简介JavaScript 是一种动态类型语言,这意味着解释器在运行时确定变量的类型。实际上,这也允许我们在相同的代码中使用相同的变量来存储不同类型的数据。如果没有文档和一致性,...【详细内容】
2020-10-22  Tags: javascript  点击:(34)  评论:(0)  加入收藏
逻辑赋值是对现有数学和二进制逻辑运算符的扩展。我们先复习一下,然后看看把它们结合在一起能得到什么。首先,我们来看下 JS 中条件运算符与无条件运算符之间的区别 。无条件...【详细内容】
2020-10-15  Tags: javascript  点击:(37)  评论:(0)  加入收藏
1Function.prototype 竟然是个函数类型。而自定义函数的原型却是对象类型。typeof Function.prototype === 'function'; // truefunction People() {}typeof Peopl...【详细内容】
2020-09-24  Tags: javascript  点击:(39)  评论:(0)  加入收藏
在 JavaScript 中使用循环时,需要理解两个关键点:可枚举的属性和可迭代的对象。可枚举的属性可枚举对象的一个定义特征是,当通过赋值操作符向对象分配属性时,我们将内部 enumera...【详细内容】
2020-09-22  Tags: javascript  点击:(38)  评论:(0)  加入收藏
▌简易百科推荐
1、将arguments对象转换为数组arguments 对象是函数内部可访问的类似数组的对象,其中包含传递给该函数的参数的值。但这与其他数组不同,我们可以访问值并获取长度,但是不能对其...【详细内容】
2021-07-04  WilsonChen肥仔    Tags:javascript   点击:(12)  评论:(0)  加入收藏
JavaScript是Web开发中最简单的面向结果的语言之一。该语言使数据的处理和计算成为一种方便。它还有助于将视觉效果添加到屏幕上。它是一种同时用于客户端和服务器端应用程...【详细内容】
2021-06-25  程序飒飒    Tags:JavaScript   点击:(17)  评论:(0)  加入收藏
介绍viewer.js是一个专门用于图片预览的js库,图片预览效果很好,支持诸如缩放(支持滚轮操作)、旋转、播放、左右翻转、最大化等诸多使用功能,v-viewer则是对其进一步封装,将它带入...【详细内容】
2021-06-25  爱分享Coder    Tags:Vue   点击:(28)  评论:(0)  加入收藏
JQuery是一套Javascript脚本库.使用JQuery将极大的提高编写javascript代码的效率,让写出来的代码更加优雅,更加健壮. JQuery第一个版本JQuery1.0发布时间是2006年1月,目前最...【详细内容】
2021-06-24  开课吧科科    Tags:Jquery   点击:(18)  评论:(0)  加入收藏
在执行JavaScript代码之前,js引擎首先会对其进行解析和编译。在编译阶段,变量和函数声明被放入内存,这被称为提升(hoisting)。...【详细内容】
2021-06-23  前端小混混  前端先锋  Tags:JavaScript   点击:(24)  评论:(0)  加入收藏
无论使用何种编程语言,代码都需要根据不同的情况对给定的输入做出不同的决定并执行相应的操作。举例来说,在游戏中,如果玩家的生命值是0,游戏就结束了。在气象应用程序中,如果观...【详细内容】
2021-06-18  开课吧科科  今日头条  Tags:JavaScript   点击:(25)  评论:(0)  加入收藏
在日常工作中,文件上传是一个很常见的功能。在某些情况下,我们希望能限制文件上传的类型,比如限制只能上传 PNG 格式的图片。针对这个问题,我们会想到通过 input 元素的 accept...【详细内容】
2021-06-10    掘金  Tags:JavaScript   点击:(43)  评论:(0)  加入收藏
最近在工作中遇到了一个场景:要做一个静态的网站,里面的内容是由设计编写的.md格式的内容。设计将编好的文档统一放在常用的Google Drive里面,如下图 然后我需要将这些文档下载...【详细内容】
2021-06-09  前端在路上    Tags:Nodejs   点击:(32)  评论:(0)  加入收藏
事件什么是event对象用来获取事件的详细信息:鼠标位置,键盘按键获取鼠标位置:clientXdocument对象:document对象代表当前文档,使用window对象的document属性访问,当浏览器加载文档...【详细内容】
2021-06-08  今白    Tags:javascript   点击:(43)  评论:(0)  加入收藏
Json 和 Xml 的目的是相似的,他们都是将方便理解和易读的方式将复杂数据组织到各种接口和语言中,这种类型的技术当然是不能缺少的,我们通过他们构建数据也能很好的去共享他们,但...【详细内容】
2021-06-04  小小码农Kamily  今日头条  Tags:JSON   点击:(39)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条