We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
可以通过typeof来查看 JavaScript 变量的数据类型。
constructor 属性返回所有 JavaScript 变量的构造函数。
js变量可以转换为新变量或其他数据类型
5 + null // 返回 5 null 转换为 0 "5" + null // 返回"5null" null 转换为 "null" "5" + 1 // 返回 "51" 1 转换为 "1" "5" - 1 // 返回 4 "5" 转换为 5
var y = "5"; // y 是一个字符串 var x = + y; // x 是一个数字
var time = new Date() +time
解析字符串中的数字和将字符串强制类型转换为数字的返回结果都是数字。但是解析和转换两者之间还是有明显的差别。比如:
var a = "42" var b = "42px" Number(a) //42 parseInt(a) //42 Number(b) //NaN parseInt(b) //42
解析允许字符串中含有非数字字符,解析按从左到右的顺序,如果遇到非数字字符就停止。而转换不允许出现非数字字符,否则会失败返回NaN。
解析字符串中的浮点数可以使用parseFloat()函数。从ES5开始parseInt()默认转换为十进制数,除非指定第二个参数作为基数。
在 == 中null和undefined相等,这也就是说在==中null和undefined是一回事,可以相互进行隐式强制类型转换。
掌握“抽象相等比较算法”,读者可以自行推倒为什么[]==![]返回true。
""、"\n"(或者" "等其他空格组合)等空字符串被ToNumber强制类型转换为0。
ToPrimitive 运算符接受一个值,和一个可选的 期望类型 作参数。ToPrimitive 运算符把其值参数转换为非对象类型。如果对象有能力被转换为不止一种原语类型,可以使用可选的 期望类型 来暗示那个类型。根据下表完成转换
具体的原因:
不同的对象在底层都表示为二进制 在JavaScript中二进制前三位为0的话都会被判断为object类型 null的二进制表示全是0,自然前三位也是0 所以 typeof null === “object”
参考网站:
blog
你可能忽略的js类型转换
JavaScript中的强制类型转换
深入了解JS的类型、值、类型转换
The text was updated successfully, but these errors were encountered:
No branches or pull requests
数据类型
对象类型
不包含任何值的数据类型
JavaScript 数据类型图
typeof 操作符
可以通过typeof来查看 JavaScript 变量的数据类型。
constructor 属性
constructor 属性返回所有 JavaScript 变量的构造函数。
JavaScript 类型转换
js变量可以转换为新变量或其他数据类型
转换方式
Number 转 String
boolean 转 String
string 转 Number
自动转换类型
Operator + 可用于将变量转换为数字:
一元运算符 + 的另一个常见用途是将日期(Date)对象强制类型转换为数字,返回结果为Unix时间戳。
显式解析数字字符串
解析字符串中的数字和将字符串强制类型转换为数字的返回结果都是数字。但是解析和转换两者之间还是有明显的差别。比如:
解析允许字符串中含有非数字字符,解析按从左到右的顺序,如果遇到非数字字符就停止。而转换不允许出现非数字字符,否则会失败返回NaN。
解析字符串中的浮点数可以使用parseFloat()函数。从ES5开始parseInt()默认转换为十进制数,除非指定第二个参数作为基数。
null和undefined之间的相等比较
在 == 中null和undefined相等,这也就是说在==中null和undefined是一回事,可以相互进行隐式强制类型转换。
掌握“抽象相等比较算法”,读者可以自行推倒为什么[]==![]返回true。
""、"\n"(或者" "等其他空格组合)等空字符串被ToNumber强制类型转换为0。
ToPrimitive(转换为原始值)
ToPrimitive 运算符接受一个值,和一个可选的 期望类型 作参数。ToPrimitive 运算符把其值参数转换为非对象类型。如果对象有能力被转换为不止一种原语类型,可以使用可选的 期望类型 来暗示那个类型。根据下表完成转换
注意:null是唯一一个用typeof检测会返回object的基本类型值(注意‘基本’两字)
具体的原因:
参考网站:
blog
你可能忽略的js类型转换
JavaScript中的强制类型转换
深入了解JS的类型、值、类型转换
The text was updated successfully, but these errors were encountered: