类型转换的判定方式
时间:2022-05-04
本文章向大家介绍类型转换的判定方式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
对于“==”,我们肯定不陌生,但是背后的判定机制我们可能不是很熟悉,我现在先举一些例子,最后再总结一下大概的方法:
null == undefined // true
1 == true //
NaN == NaN //false
'123' == 123 //true Number('123') == 123
'' == 0 // true
'123' == {valueOf: function(){return '123'}} // true
'123' == {valueOf: function(){return 123}} // true
'123' == {toString: function(){return '123'}} // true
123 == {valueOf: function(){return {}}} //false
123 == {toString:function(){return 123},valueOf: function(){return {}}} //true;
123 == {toString:function(){return 'abc'},valueOf: function(){return 123}} //true;
123 == {toString:function(){return '123'},valueOf: function(){return {}}} //true;
综上来看,
1,NaN与任何值都不相等
2,其中一个数是boolean,则将boolean转化为数字,true为1,false为0
3,其中一个为字符串,若另一个数为数值,则将字符串(Number(str))转化为数字;
4,其中一个为对象,另外一个为基本类型值,
1)调用对象的valueOf方法,若valueOf返回一个基本类型值,则比较这个基本类型的值与字符串是否相等,相等
则返回true,不相等返回false。不会再执行toString方法进行判断。
2)调用对象的valueOf方法,若valueOf返回一个非基本类型值(对象,函数),则在执行toString方法,与返回的基本类型值
在进行比较。
5,对象与对象比较,判断是不是同时指向同一个对象。
6,null和undefined不参与转换,但是null == undefined。
- Centos中yum方式安装java
- 微信小程序新革命催生新物种新物种带来大红利!玩转行业新玩法
- 无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(3)删除记录
- 部署Zipkin分布式性能追踪日志系统的操作记录
- 无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(4)显示记录
- Android 2.x中使用actionbar - Actionbarsherlock (2)
- python读txt和xml
- 让Jexus支持高并发请求的优化技巧
- 数据压缩算法LZO (C#)
- Html之初体验
- 基于Wolfpack开发业务监控系统
- Android 2.x中使用actionbar - Actionbarsherlock
- Python-操作Memcache、Redis、RabbitMQ、
- 推荐[搜索引擎架构]的几篇文章
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何实现一个高效的启发式算法?(VRPTW篇)
- Ubuntu Server搭建Hyperledger Fabric 2.1学习环境
- 辛辛苦苦学会的 webpack dll 配置,可能已经过时了
- 【程序中的数学】利用德摩根定律简化布尔运算
- Conjob For hybris
- ListView通用泛型适配器
- Android实现C/S聊天室
- OpenCV4.4 CUDA编译与加速全解析
- 如何利用Kotlin实现极简回调
- Android辅助权限的介绍和配置完整记录
- Redis基础——剖析基础数据结构及其用法
- SwipeRefreshLayout+RecyclerView实现上拉刷新和下拉刷新功能
- 二值分析 | OpenCV + skimage如何提取中心线
- 详解OpenVINO 模型库中的人脸检测模型
- Tensorflow的妙用