时间:2021-05-26
ECMAscript 中有5种简单的数据类型,也被称为基本数据类型:Undefined、Null、Boolean、Number和String。还有一种复杂的数据类型——Object。
Undefined 类型
在使用var 声明变量但未对其进行初始化时,这个变量的值就是undefined。如:
var number;document.write(number); //undefined如果没有声明变量则会出现下面这种错误。如:
document.write(str); //错误但是用typeof对其进行执行时,不管有没有声明都会返回undefined 值。如:
var num;document.write(typeof num); //undefineddocument.write(typeof str); //undefinedNull 类型
使用typeof检测null 时会返回"object"。如:
var num = null;document.write(typeof num); //object实际上undefined 值是派生自null 值的,因此他们相等都会返回true。如:
alert(null == undefined); //true这里要注意的是,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null 值,此举有助于区分null 和 undefined。如:
var num1 = null;var num2;document.write(typeof num1 + " " + typeof num2); //object undefinedBoolean 类型
要将一个值转换为其对应的Boolean 值,可以使用转型函数Boolean()。如:
var str = "helloworld";document.write(Boolean(str)); //true《JavaScript高级编程设计》一书中的3.4.4中给出了关于各种数据类型及其对应的转换规则表格。大概有以下几种:
这里要注意的是,if 语句经常使用自动执行响应的Boolean 转换作为条件。如:
var str = "helloworld";if (str){ document.write("hellothere");} //hellothereNumber 类型
除了可以以十进制表示之外,整数还可以通过八进制或者十六进制的字面值来表示,其中八进制字面值的第一位必须是0,然后是八进制数字序列(0~7)。如:
var num1 = 070; //八进制的56var num2 = 032; //八进制的32var num3 = 079; //错误的八进制(>7)var num4 = 09; //错误的八进制(>7)十六进制字面值的前两位必须是0x,后面跟任何十六进制数(0~9 及 A~F)。如:
var num1 = 0xA; //十六进制的10var num1 = 0xa; //也是十六进制的10(字母不区分大小写)浮点数值
这里要注意的是,永远不要比较特定的浮点数值。如:
var a = 0.1;var b = 0.2;if (a + b == 0.3){ document.write("you are right")} //因为0.1 加上0.2 实际上等于0.30000000000000004数值范围
ECMAScript 能够表示的最大和最小数值保存在Number.MAX_VALUE 和Number.MIN_VALUE 之中。要想确定一个数值是不是有穷的,可以使用isFinite()函数。如:
document.write(isFinite(Number.MAX_VALUE + Number.MAX_VALUE)); //falseNaN
0 除以0 会返回NaN,正数除以0 会返回Infinity,复数则会返回-Infinity。其次,NaN 与任何数值都不相等,包括它本身。另外函数isNaN()可以帮助我们确定这个参数是否“不是数值”。如:
document.write(isNaN("a")); //true;document.write(isNaN("324")); //false;document.write(isNaN(true)); //false;document.write(isNaN(false)); //false;document.write(isNaN(NaN)); //true;数值转换
有三个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat()。
Number()的转换规则如下:
如果是Boolean 值,true 和false 会被转换为1 和0。
如果是数字值,则不变。
如果是null 值,则转换为0。
如果是undefined,返回NaN。
如果是字符串则遵循下列规则:
具体看下面的例子:
document.write(Number(true)); //1document.write(Number(false)); //0document.write(Number("789")); //789document.write(Number(null)); //0document.write(Number(undefined)); //NaNdocument.write(Number("02.0942")); //2.0942document.write(Number(0xa)); //10document.write(Number("")); //0document.write(Number("fdsa")); //NaNparseInt()的转换规则如下:
下面是具体的例子:
document.write(parseInt("fds")); //NaNdocument.write(parseInt("")); //NaNdocument.write(parseInt("1111112abc")); //1111112document.write(parseInt("-1111112abc")); //-1111112document.write(parseInt("+1111112abc")); //-1111112document.write(parseInt("0xa")); //10document.write(parseInt("0022.00009")); //22document.write(parseInt("070")); //ECMAScript 3认为是56(八进制), ECMAScript 5认为是70(十进制)另外需要注意的是,ECMAScript 5已经不具备解析八进制值的能力了所以为了消除这个问题,可以为这个函数提供第二个参数:转换时使用的基数(多少进制),具体如下:
document.write(parseInt("070",10)); //70document.write(parseInt("070",8)); //56document.write(parseInt("070",16)); //112多数情况下,最好默认设置成10进制。
parseFloat()的转换规则如下:
下面是具体的例子:
document.write(parseFloat("421")); //421document.write(parseFloat("0421.32.1")); //421.32document.write(parseFloat("0xaafd")); //0document.write(parseFloat("070")); //70document.write(parseFloat("070abc")); //70document.write(parseFloat("")); //NaNdocument.write(parseFloat("abc")); //NaNString 类型
要把一个值转换成字符串有两种方式。第一种是使用几乎每个值都有的toString()方法。如下:
document.write((533).toString(10)); //"533"document.write((0xa).toString(10)); //"10"document.write((0xa).toString(2)); //"1010"document.write((true).toString(10)); //"true"document.write((false).toString(10)); //"false"另外需要注意的是,null 和 undefined 不能转换。
document.write((null).toString(10)); //document.write((undefined).toString(10)); //如果不知道需要转换的数值是否是null 或者undefined 则应该使用转型函数String(),如果是null 会返回"null"如果是undefined 会返回"undefined"。如下:
document.write(String(null)); //"null"document.write(String(undefined)); //"undefined"另外在下一篇文章中再详细介绍Object 类型。
以上就是关于JavaScript数据类型的简单介绍,希望对大家学习JavaScript数据类型有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一.基础篇Javascript学习笔记1数据类型Javascript学习笔记2函数Javascript学习笔记3作用域Javascript学习笔记4Eval函数
第一页:JavaScript数据类型详解第二页:JavaScript数据类型详解第三页:JavaScript数据类型详解 数据类型 JavaScript中有
一.数据类型Javascript是一种弱类型的脚本语言,它一共有6种数据类型,又被分为基础数据类型,特殊数据类型,复合数据类型。 1.基础数据类型:数值型,
前面的话 javascript的数据类型可以分为两种:原始类型和引用类型。原始类型也称为基本类型或简单类型,javascript基本数据类型包括Undefin
本文实例讲述了javascript中的数据类型检测方法。分享给大家供大家参考,具体如下:在javascript中数据类型值类型:布尔(Boolean),数值(N