欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数组和对象,typeof,类型转换

程序员文章站 2024-03-17 22:04:46
...

1,数组

遍历数组:

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

2,对象

键--->值一一对应

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

-----------------------------------------------------------------------------------------------------------

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

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

什么样的值能返回Object呢?

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

所以一共有Object,数组和null

那什么样的数组返回undefined?

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

undefined返回undefined

--------------------------------------------------------------------------------------------------------------

先看下面的

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

1,显式类型转换

(1)Number

转换成数字

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

(2)parseInt

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

 

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

parseInt也可以根据进制来转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

以目标进制为基底转换为10进制

就是把“10”当做16进制,然后转换成10进制(radix 2-36)

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

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

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

parseInt还有一个作用就是从前往后读,遇到不是数字位的就截断

(3)parseFloat 

转换成浮点类型

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

除了第一个是.的字符,其他都截断

(4)String

转换成字符串

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

放进去啥(符合语法规范)都是字符串

(5)Boolean

转换成boolean值

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

(6)toString

转换成字符串,只是用法不太一样

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

但是要注意:

undefined和null不能使用toString

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

报错

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

报错

toString还有一个用法

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

以10进制为基底转换为目标进制

如上:把10(10进制)转换为8进制

现在把10101010(2进制)转换为16进制

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

----------------------------------------------------------------------------------------------------------------------------

隐式类型转换(内部调用的其实都是显式的方法)

(1)isNaN()

判断数值是不是NaN

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

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

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

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

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

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

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

+(正号),调用的是Number

-(负号),同理

(3)+(加号)

+,如果+两边有一个是字符串,调用String,那么就会把两个都变成字符串

(4)*,/,%

调用的都是Number

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

(5),&& ,||  ,!

有转换为boolean的部分

(6)>,<,>=,<=

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

会将‘2’变为数字

(7)

==,!=

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

(8)

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

一个一个比较

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

数组和对象,typeof,类型转换

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

数组和对象,typeof,类型转换

不会发生类型转换

(10)typeof返回值都是String类型

数组和对象,typeof,类型转换

下面是自己写的输出类型:

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');
	}
}