JavaScript数据类型及其判断
2016-07-08 21:58
489 查看
JS数据类型
JavaScript有5种简单数据类型:Undefined,Null,Boolean,Number和String,还有一种复杂数据类型:Object。Undefined类型
Undefined类型只有一个值,即undefined,在使用var声明变量但未对其初始化时,该变量的值就是undefined。例:var x; console.log(x === undefined); //true
当使用typeof操作符进行数据类型判断时,Undefined类型返回字符串”undefined”。但是还有一种情况下也返回”undefined”:当变量尚未声明,即不存在时,也返回”undefined”。例:
var x; console.log(typeof x); //undefined console.log(typeof y); //undefined
Null类型
Null类型也只有一个值:null。null值表示一个空对象指针,故使用typeof操作符检测null值时会返回”object”,例:var x = null; console.log(typeof x); //object
对于null和undefined这两个值,它们有这样的关系:
console.log(null == undefined); //true
对用于保存对象的变量,当其尚未赋值时,为其初始化值为null,这样做不仅可以体现null作为空指针对象的惯例,还可以进一步区分undefined和null。
Boolean类型
该类型只有两个字面值:true和false,其区分大小写,即True和False不是Boolean值,只是变量标识符。要将一个值转换为对应的Boolean值,可使用函数Boolean(),在如if语句这样的判断中,会自动执行Boolean转换,举几个返回false的例子:Boolean(false); //false Boolean(""); //false Boolean(0); //false Boolean(NaN); //false Boolean(null); //false Boolean(undefined); //false
Number类型
该类型使用IEEE754格式来表示整型和浮点数值。最基本的数值字面量格式是十进制整数。八进制字面量的第一位必须是0,然后是八进制数字序列0~7,而如果输入无效的八进制数,如:079,则解析为十进制数79,严格模式下八进制字面量无效。十六进制字面值的前两位必须为0x,后跟任意十六进制数字序列0~9和A~F,字母大小写均可。浮点数中值得注意的一点是其最高精度是17位小数,但在进行算术计算时其精度远不如整数。例:0.1+0.2的结果不是0.3,而是0.30000000000000004!
Number(),parseInt()和parseFloat()三个函数可以把非数值转换为数值,在此不作介绍。
String类型
String类型用于表示由零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号”“或单引号”表示。除了null和undefined以外。其他的值都有一个toString()方法,这个方法返回相应值的字符串表现。此外,还可以使用转型函数String()。
Object类型
ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。而创建Object类型的实例并为其添加属性和方法,就可以创建自定义对象,如:var o = new Object();
数据类型判断
前面提到过可以使用typeof来判断数据类型,但这个方法并不能准确判断出所有的类型。除此之外,还有一个操作符:instanceof,其用于判断某个对象是什么类型的对象。由此我们可以做一些判断来判断各个数据类型://判断String,Boolean,Number和Undefined类型时,使用typeof操作符即可 //以判断String类型为例 function isString(str) { return typeof str == "string"; } //判断Object类型 function isObject(obj) { return obj instanceof Object; } //判断Null类型 function isNull(x) { if(typeof x == "object") { if(x instanceof Object == false) { return true; } else { return false; } } else { return false; } }
相关文章推荐
- zepto源码研究 - zepto.js-4(常用的工具)
- js 处理Json 时间带T 时间格式
- Web 基础学习之 JS ,循环练习
- JSONP(跨域请求) —— 一种非官方跨域数据交互协议
- onBlur事件与onfocus事件(js)
- 纯JS回显form各种表单数据
- 匈牙利算法 cojs.tk 搭配飞行员
- js arguments.caller arguments.callee分析
- 《Pro Express.js》学习笔记——Express框架常用设置项
- 《Pro Express.js》学习笔记——Express服务启动常规七步
- JSP隐式对象的类,及其相关的方法介绍
- 《Pro Express.js》学习笔记——概述
- js获取表单域的三种方式
- ArcGIS API for JavaScript使用中出现的BUG(1)
- ArcGIS API for JavaScript使用中出现的BUG(1)
- js 生成 yyyy-mm-dd 格式
- js测试单选按钮
- js测试复选按钮
- jsp的base属性
- JS题