1、把其他的数据类型转换为number类型
Number()->严格
parseFloat/parseInt ->非严格
isNaN(value) 如果value值不是数字类型的,它是首先调用Number转换为数字类型然后在判断是否为有效的数字
例如:
Number("12px"); ->NaN
parseInt("12px"); ->12
isNaN("12"); ->false
规律:
1)把布尔类型转换为数字的话 true->1 false->0
2)把null/undefined转换为数字 null->0 undefined->NaN 10+null=10 10+undefined=NaN
3)把[]转换为数字 首先调用数组的toString方法把[]->"",然后在使用Number方法把""->0
2、把其他的数据类型转换为布尔类型
Boolean
!!
! 先转换为布尔类型,然后在取反
例如:
!!1->true
!!0->false
![]->false !![]->true
规律:
只有0、NaN、null、undefined、""这五个转换为布尔类型的时候是false,其余的转换完成都是true
特殊情况:
如果你的条件判断中只是单独的一个值,它是首先把1转换布尔类型(->true),在判断是真还是假,如果是真条件成立,反之条件不成立
if (1) { } if ("3px" * 3) {//->条件不成立 "3px" * 3=NaN ->false } if ("3px" + 3) {//->条件成立 "3px" + 3="3px3" ->true }
"+"在JS中不仅仅是数学运算,遇到字符串的时候属于字符串拼接
"-、*、/"在JS中只能是数学运算,遇到不是number类型的要强制转换为number进行数学性运算
3、两个值进行比较(==比较的,===比较数据类型不一样不会进行默认的转换),如果左右两边的数据类型不一样,我们需要遵循一套法则,进行默认的数据类型转换
value1==value2
1)对象==对象 比较的是自己存储的内存地址,如果内存地址不一样就不相等 []==[]->false 每一个空数组都是一个单独的内存地址
2)对象==字符串 调用toString方法,将对象转换为字符串 []==""->true
3)对象==布尔 对象转换为数字(toString-Number),布尔也转换为数字(true->1 false->0)
[]==false ->true []->0 false->0 0==0->true
![]==false -> ![]先把空数组转换为布尔类型然后在取反->false false==false->true
4)对象==数字 对象转换为数字 []==0->true []==1->false
5)字符串==布尔 两者都转换为数字 "3"==true->false "1"==true->true
6)字符串==数字 字符串转换为数字 ""==0->true
7)布尔==数字 布尔转换为数字 true==1->true true==2->false
8)null==undefined ->true null===undefined ->false
null/undefined和其他的任何值都不相等 null==0->false
9)NaN==NaN ->false NaN和任何的值(包括自己)都不相等
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持小牛知识库!
本文向大家介绍浅谈Python中的数据类型,包括了浅谈Python中的数据类型的使用技巧和注意事项,需要的朋友参考一下 数据类型: Float/Int: 运算符: / — 浮点运算除 // — 当结果为正数时,取整; 11//5 =2; 11//4 = 2 当结果为负数时,向下取整;-11//5=-3; -11//4=-3 当分子分母都是float,结果为float型 ** — 计算幂; 11
本文向大家介绍浅谈Python数据类型之间的转换,包括了浅谈Python数据类型之间的转换的使用技巧和注意事项,需要的朋友参考一下 Python数据类型之间的转换 函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) 创建一个复数 str(x) 将对象
在Java中,大家都知道整数不能转换为字符串,这是编译时的一个错误。 对于这个一般的情况, 我只是不明白为什么在这种情况下,java不能在编译时警告您整数转换为字符串。为什么?据我所知,类型删除是在编译后发生的。 编辑:我只是以为编译器有类型推断才知道T是字符串,这样就不能将Integer强制转换为。但显然没有。
本文向大家介绍浅谈Java数值类型的转换与强制转换,包括了浅谈Java数值类型的转换与强制转换的使用技巧和注意事项,需要的朋友参考一下 数值类型之间的转换 6个实心箭头箭头表示无信息丢失的转换; 3个虚箭头表示可能有精度损失的转换. 当使用上面两个数值进行二元操作时,先要将两个操作数转换为同一类型,然后再进行计算. 规则:`两个数中小类型的值将自动转换为大类型的值. 小转大可以,但是大转小会损失精
本文向大家介绍浅谈PHP中其他类型转化为Bool类型,包括了浅谈PHP中其他类型转化为Bool类型的使用技巧和注意事项,需要的朋友参考一下 问题起由:PHP中if(true==2)会返回true还是false? 结果是返回true,顺着这个问题,我把php其他数据类型也测试一下。 结论: 转化为bool类型时,会变成false的几种数据: 1.整型0 2.空字符串 3.空数组 4.NULL 欢迎补
本文向大家介绍浅谈JavaScript function函数种类,包括了浅谈JavaScript function函数种类的使用技巧和注意事项,需要的朋友参考一下 本篇主要介绍普通函数、匿名函数、闭包函数 1.普通函数介绍 1.1 示例 1.2 Js中同名函数的覆盖 在Js中函数是没有重载,定义相同函数名、不同参数签名的函数,后面的函数会覆盖前面的函数。调用时,只会调用后面的函数。 1.3 arg
本文向大家介绍浅谈javascript中的 “ && ” 和 “ || ”,包括了浅谈javascript中的 “ && ” 和 “ || ”的使用技巧和注意事项,需要的朋友参考一下 有时候,我们会在jQuery框架或者其他js插件中发现里面有很多 “ && ” 和 “ || ”,那么这两个标识到底是什么含义?怎么使用?我觉得还是有必要稍微深究一下。 一、原理: && 操作符特点:逻辑运算表达式中
本文向大家介绍浅谈javascript中的constructor,包括了浅谈javascript中的constructor的使用技巧和注意事项,需要的朋友参考一下 constructor,构造函数,对这个名字,我们都不陌生,constructor始终指向创建当前对象的构造函数。 这里有一点需要注意的是,每个函数都有一个prototype属性,这个prototype的constructor指向这个函