JavaScript之数据类型
2024-10-10 16:58:47
1. 种类
5种基本类型:Number、String、Null、Undefined、Boolean
1种对象类型:Object(Function、Array、Date)
特别注意:当把基本类型尝试以对象的方式使用它的时候(比如使用它的length属性,增加它的属性),JS会将其转化为包装类型的对象(临时对象),但当完成这样一个访问后,JS就会销毁这个临时对象!
2. 类型检测
由于ECMAScript是松散类型的,故有必要检测给定变量的数据类型:
typeOf
适合范围:基本类型、函数类型(注意:不适合null)
instanceof
var obj;
console.log(obj instanceof Object);//true
console.log(undefined instanceof Object);//false
console.log(null instanceof Object)//false
obj instanceof Object 判断obj的原型链上是否有Object.prototype对象
适用范围:引用类型的判断
Undefined、Null类型的检测
由于这两种类型都只有一个值,所以可以直接用值来判断!
null === null;//true
undefined === undefined;//true
Undefined的意义:用来表示声明但未初始化的变量(注意:不同于尚未定义的变量)
Null的意义:用来表示尚未存在的对象(空对象指针)(建议:如果定义的变量将来用于保存对象,那最好将该变量初始化为null而不是其他值,这样就只要坚持null即可知道是否已经保存了一个对象的引用!)
3. 等于、严格等于
==:
- 对于基本类型而言,会尝试进行类型转换之后再比较
- 对于引用类型,会比较是否是指向同一个对象(地址比较)
===:
- 类型不同返回false
- 同类型的比较,不进行类型转换
特殊值:NaN的比较
NaN:Not a Nnmber
意义:控制“将本来要返回数字但是却没有返回数字”的情况。例如“I”*3在其他语言中是会报错的,但在JavaScript中并不会报错,而是返回值NAN。
特殊性:跟任何类型比较都不相等,包括它自己!所以要判断一个值是否是NAN,必须使用isNAN
1.对于基本类型会尝试进行number类型的转换后再进行判断
2.对于对象类型,会首先调用其valueOf尝试转换后再进行判断
var o = {
valueOf:function(){
return "44";
}
}
isNaN(o);//false
4. 类型转换
巧用+/-进行类型转换
Boolean值的转换
可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean值
数据类型
|
转换为true的值
|
转换为false的值
|
Boolean
|
任何非空字符串
|
空字符串
|
Number
|
任何非零数字值(包括无穷大)
|
0和NaN
|
Object
|
任何对象
|
null
|
Undefined
|
不适用
|
undefined
|
字符串转数值
方式一:Number()--不推荐
方式二:parseInt():建议无论什么情况下都要明确指定基数
方式三:parseFloat()
值转字符串
- toString-----不适用于null、undefined
- String()
最新文章
- ASP.net gridview之性别
- 会游走的TextView
- mybatis int 类型判断<;if>;
- MySQL中快速复制数据表方法汇总
- 实现手机扫描二维码页面登录,类似web微信-第四篇,服务器端
- Linux WAS7 启动异常
- angular 服务
- JIRA官方:JIRA项目跟踪
- file.encoding到底指的是什么呢?
- Django查询的琐碎记录
- media query(媒体查询)和media type(媒体类型)
- Java版简易画图板的实现
- 微信H5支付证书过滤
- C#创建、读写、增加、删除XML操作
- JavaScript Json(转)
- CentOS6.5安装mysql以及常见问题的解决
- Python基础系列讲解—动态类型语言的特点
- Java 反射 不定参数bug
- Cure HDU - 5879(预处理+技巧)
- 利用QtGraphicalEffects来使得自己的图像显示更加生动