1,数组
遍历数组:


2,对象
键--->值一一对应


-----------------------------------------------------------------------------------------------------------
typdof,返回数据类型,一共可以返回number,string,boolean,object,undefined,function


什么样的值能返回Object呢?






所以一共有Object,数组和null
那什么样的数组返回undefined?


undefined返回undefined
--------------------------------------------------------------------------------------------------------------
先看下面的






1,显式类型转换
(1)Number
转换成数字
















(2)parseInt








parseInt也可以根据进制来转换


以目标进制为基底转换为10进制
就是把“10”当做16进制,然后转换成10进制(radix 2-36)




把“3”当二进制转换成10进制,这显然是错误的,2进制里没有3






parseInt还有一个作用就是从前往后读,遇到不是数字位的就截断
(3)parseFloat
转换成浮点类型






除了第一个是.的字符,其他都截断
(4)String
转换成字符串


放进去啥(符合语法规范)都是字符串
(5)Boolean
转换成boolean值






(6)toString
转换成字符串,只是用法不太一样


但是要注意:
undefined和null不能使用toString


报错


报错
toString还有一个用法


以10进制为基底转换为目标进制
如上:把10(10进制)转换为8进制
现在把10101010(2进制)转换为16进制


----------------------------------------------------------------------------------------------------------------------------
隐式类型转换(内部调用的其实都是显式的方法)
(1)isNaN()
判断数值是不是NaN






这是因为isNaN内部调用的是Number()方法,先用Number()转换变量,然后再判断是否和NaN相等




(2)++,--,+/-正负




++,会先调用Number()将变量转换为Number,然后再++(--同理)


+(正号),调用的是Number
-(负号),同理
(3)+(加号)
+,如果+两边有一个是字符串,调用String,那么就会把两个都变成字符串
(4)*,/,%
调用的都是Number


(5),&& ,|| ,!
有转换为boolean的部分
(6)>,<,>=,<=


会将‘2’变为数字
(7)
==,!=


(8)


一个一个比较



(9),===绝对相等,!==,绝对不等

不会发生类型转换
(10)typeof返回值都是String类型

下面是自己写的输出类型:
function outType(obj) {
if( typeof(obj) != 'object'){
if(typeof(obj) == 'function')
console.log('object');
else
console.log(typeof(obj));
}
else if(Object.prototype.toString.call(obj) == '[object Object]'){
console.log('object');
}
else if(Object.prototype.toString.call(obj) == '[object Array]'){
console.log('Array');
}
else if(Object.prototype.toString.call(obj) == '[object Number]'){
console.log('number Object');
}
}
本文深入讲解JavaScript中的类型转换,包括显式类型转换如Number、parseInt、parseFloat、String、Boolean及toString方法;以及隐式类型转换,例如isNaN()、递增递减运算符、算术运算符等,并附带说明了typeof操作符的返回值。
3041

被折叠的 条评论
为什么被折叠?



