关注
7.javascript中有几种对象类型?他们之间能否相互转换?
JS中有6种数据类型:Undefined、Null、Boolean、Number、String和Object。JS中不支持任何创建自定义类型的机制,而所有值最终都将是这6种数据类型。其数据类型的动态性特点足以表示所有数据。JS提供typeof操作符来检测变量的数据类型。
(typeof返回的是字符串有六种可能:"number","string","boolean","object","function","undefined")。
我们先来看看Undefined这个数据类型吧,Undefined类型只有一个特殊的值——undefined。
undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:
(1)变量被声明了,但没有赋值时,就等于undefined。
(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象没有赋值的属性,该属性的值为undefined。
(4)函数没有返回值时,默认返回undefined。
JavaScript中检测对象类型的运算符有:typeof、instanceof,还有对象的constructor属性:
1) typeof 运算符 typeof
是一元运算符,返回结果是一个说明运算数类型的字符串。如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在)。
但 typeof 的能力有限,其对于Date、RegExp类型返回的都是"object"。如:
?
1
2
3
typeof{};// "object"
typeof[];// "object"
typeofnewDate();// "object"
所以它只在区别对象和原始类型的时候才有用。要区一种对象类型和另一种对象类型,必须使用其他的方法。如:instanceof
运算符或对象的 constructor 属。
2)instanceof 运算符。 instanceof
运算符要求其左边的运算数是一个对象,右边的运算数是对象类的名字或构造函数。如果 object 是 class 或构造函数的实例,则
instanceof 运算符返回 true。如果 object 不是指定类或函数的实例,或者 object 为 null,则返回
false。如:
?
1
2
3
4
[]instanceofArray;// true
[]instanceofObject;// true
[]instanceofRegExp;// false
newDateinstanceofDate;// true
所以,可以用instanceof运算符来判断对象是否为数组类型:
?
1
2
3
functionisArray(arr){
returnarrinstanceofArray;
}
JS 数据类型转换 方法主要有三种:
转换函数、强制类型转换、利用js变量弱类型转换。
1. 转换函数:
js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not
a Number)。
2. 强制类型转换
还可使用强制类型转换(type
casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
ECMAScript中可用的3种强制类型转换如下:
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。 用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
当要转换的值是至少有一个字符的字符串、非0数字或对象(下一节将讨论这一点)时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。
3. 利用js变量弱类型转换
举个小例子,一看,就会明白了。 <script> var str=
'012.345 '; var x = str-0; x = x*1;
</script>
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 我的实习收获 #
30198次浏览 500人参与
# 如果有时光机,你最想去到哪个年纪? #
47086次浏览 800人参与
# 实习吐槽大会 #
32047次浏览 154人参与
# 非技术岗简历怎么写 #
209726次浏览 2860人参与
# 晒一晒你的工位 #
85718次浏览 304人参与
# 26届秋招投递记录 #
3739次浏览 105人参与
# 2025牛客秋招季 #
4095次浏览 128人参与
# 双非能在秋招上岸吗? #
215161次浏览 1142人参与
# 被AI治愈的瞬间 #
52301次浏览 597人参与
# 怎么防止在试用期被辞退 #
122310次浏览 911人参与
# 我的租房踩坑经历 #
27500次浏览 280人参与
# 穿越回高考你还会选现在的专业吗 #
21598次浏览 266人参与
# 我和mentor的爱恨情仇 #
43573次浏览 277人参与
# 打工人的工作餐日常 #
40430次浏览 343人参与
# 软开人,说说你的烦心事 #
48073次浏览 359人参与
# 毕业旅行去哪玩儿 #
1236次浏览 33人参与
# 硬件/芯片公司工作体验 #
75186次浏览 664人参与
# 商战,最累的是我们 #
13050次浏览 52人参与
# 打工人锐评公司红黑榜 #
145951次浏览 920人参与
# 25届秋招公司红黑榜 #
262154次浏览 1094人参与