-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
JavaScript是一门弱类型语言,类型转换可以被显示调用,也可以隐式地被应用在各种逻辑判断和条件判断中。
类型转换从出生开始,就伴随着属于缺陷还是有用设计的争论。作为使用者,我们的角度还达不到语言规范和特性讨论的范畴。
但是任何问题的解决初衷就是要
深入的了解,小心的求证,去其糟粕,取其精华
显式强制类型转换
String和Number
这两者完成到字符串和到数字的转换
String(..) 遵循 ToString 规则,将值转换为字符串基本类型。Number(..) 遵循 ToNumber 规 则,将值转换为数字基本类型。
+ 和 -
- 将操作数显式强制类型转换为数字
var c = "3.14";
var d = 5+ +c;
d; // 8.14- 将日期转换为数字
+ new Date() // 1512627035812parseInt
var b = "42px";
Number( b ); // NaN
parseInt( b ); // 42parseInt 解析允许字符串中含有非数字字符,解析按从左到右的顺序,如果遇到非数字字符就停止。而 Number 转换不允许出现非数字字符, 否则会失败并返回 NaN 。
parseInt( 1/0, 19 ); // 18
parseInt( false, 16 ); // 250
parseInt( parseInt, 16 ); //15看到这是否有些懵逼,没关系,先给原理
parseInt(..) 先将参数强制类型转换为字符串再进行解析
parseInt(1/0, 19)实际上是parseInt("Infinity", 19)。第一个字符是"I",以19为基数时值为18。第二个
字符 "n" 不是一个有效的数字字符,解析到此为止。
其余两行大家自行分析