有5种简单数据
类型在ECMAscript,也被称为基本数据类型:定义、空、布尔值、数字,和字符串。也有一种复杂的数据类型,对象。
未定义的类型
当变量被声明为VaR但未初始化时,变量的值是未定义的:
VaR值;
document.write(数); / /未定义
如果没有声明变量,则会出现以下
错误:
document.write(STR); / /错误
但当它
执行的类型,未定义的值将返回不论是否如宣称:
变量num;
document.write(typeof num); / /未定义
document.write(typeof STR); / /未定义
零式
当使用typeof
检测到无效,则返回对象,如:
var = null;
document.write(typeof num); / /对象
实际上,未定义的值是从空值派生的,因此它们都返回true:
警报(NULL =未定义);
需要注意的是,只要
保存对象的变量不真正保存对象,则应该显式地保留变量的null值,这有助于区分null和未定义的:
VaR num1 = null;
VaR num2;
document.write(typeof num1 ++型num2); / /对象定义
布尔型
若要将值
转换为其相应的布尔值,可以使用转换
函数布尔():
var str =HelloWorld;
document.write(布尔(STR)); / /真的
在3.4.4 Javascript高级编程,各种数据类型和相应的转换规则表。有以下一些:
当数据类型为String时,任何非空字符串都将转换为true;
当数据类型为数字时,0和楠以外的数据将被转换为false,其他数据将被转换为true;
当数据类型为对象时,除null以外的所有内容都将转换为true。
当数据类型未定义时,n/a将被转换为true,未定义的将转换为false;
需要注意的是,if语句
经常使用布尔转换,它自动执行响应作为
条件:
var str =HelloWorld;
如果(STR){
document.write(hellothere );
/ / hellothere }
编号类型
除了十进制表示法外,还可以用八进制或十六十六进制的字值表示整数,其中八进制字值的第一位必须为0,其次是八进制数字序列(0~7):
VaR num1 = 070; / /八进制56
VaR num2 = 032; / /八进制32
VaR小键盘数字3 = 079; / /错误八进制(> 7)
VaR NUM4 = 09; / /错误八进制(> 7)
前两位的十六位数的面值必须0x中,后跟任意数量的小数点后十六(0 ~ 9和~ F等):
VaR num1 = 0xa; / /十六进制10
VaR num1 = 0xa; / /十六进制(10个字母不区分大小写)
浮点数
这里需要注意的是,永远不要比较特定的浮点值:
var a=0.1;
var b=0.2;
如果(a = b = 0.3){
document.write(你是对的)
因为0.1加0.2 }实际上等于0.3000000000000000。
数值范围
ECMAscript可以表示的最大值和最小值都保存在number.max_value和number.min_value.to确定数值差,你可以用
系统的()等
功能:
document.write(需(number.max_value +号。max_value)); / /假
南
0除以0会回到南,和阳性数除以0将返回到无限大,和复数将返回-infinity.second,楠不等于任何值,包括自己的。其他的功能isnan()可以帮助我们确定这个
参数不是数值。例如:
(isnan document.write() / /真实);
(isnan document.write(324)); / /假;
document.write(isnan(真正的) / /假);
document.write(isnan(假)); / /假;
document.write(isnan(南)); / /真的;
数值转换
有三种功能,可以转换为数字值:数()(),parseInt(),parseFloat()。
数字()的转换规则如下所示:
如果是布尔值,则将真和假转换为1和0。
如果它是一个数值,它不会改变。
如果为空值,则转换为0。
如果未定义,返回到南。
如果是字符串,则遵循以下规则:
如果只有一个数字,则将其转换为十进制值。
如果是浮点格式,它会将其转换为相应的浮点值,前导零也将被忽略。
如果是116进制格式,它将被转换为十进制数。
如果字符串是空的,它将被转换为0。
其他案件将改为南。
请看下面的例子。
document.write(数(真正的)); / / 1
document.write(数(假)); / / 0
document.write(数(789)); / / 789
document.write(编号(空)); / / 0
document.write(数(定义)); / /南
document.write(数(2.0942)); / / 2.0942
document.write(编号(0xa)); / / 10
document.write(数()); / / 0
document.write(数(FDSA)); / /南
parseInt()的转换规则如下:
如果第一个字符不是数字字符或符号,parseInt()将返回NaN。
在parseInt()的空字符串转换将返回NaN。
如果第一个字符是数字字符,它将继续解析第二个字符,直到遇到非数字字符为止。
以下是具体的例子:
document.write(parseInt(朋友)); / /南
document.write(parseInt()); / /南
document.write(parseInt(111111 2abc )); / / 111111 2
document.write(parseInt(111111 2abc )); / / 111111 2
document.write(parseInt(111111 2abc )); / / 111111 2
document.write(parseInt(0xa )); / / 10
document.write(parseInt(22.00009)); / / 22
document.write(parseInt(070)); / / ECMAscript 3认为它是56(八进制)和ECMAscript 5认为它是70(十进制)。
另一个要注意的是,ECMAscript 5已经不具有分析的八进制值的能力,所以为了
解决这个问题,我们可以提供此功能的二参数:用于转换的基数,这是如下:
document.write(parseInt(070
document.write(parseInt(070
document.write(parseInt(070
在大多数
情况下,最好的
默认设置是10。
parseFloat()的转换规则如下:
类似于parseInt(),它是不同的,一个字符串的第一个小数点是有效的,并从第二小数点第二小数点是无效的。
他无法解析十六个值!!!
他只能解析十进制值!!!
他没有使用第二基数来指定基数的用法。
以下是具体的例子:
document.write(parseFloat(421)); / / 421
document.write(parseFloat(0421.32.1 )); / / 421.32
document.write(parseFloat(0xaafd )); / / 0
document.write(parseFloat(070)); / / 70
document.write(parseFloat(070abc )); / / 70
document.write(parseFloat()); / /南
document.write(parseFloat(ABC)); / /南
字符串类型
有两种
方法可以将值转换为字符串。首先是toString()方法,使用几乎所有的价值。如下:
(document.write(533),ToString(10)); / / 533
document.write((0xa)。ToString(10)); / / 10
document.write((0xa)。ToString(2)); / / 1010
document.write((真的),ToString(10)); / /真实
document.write((假),ToString(10)); / /假
还需要注意的是null和未定义不能转换。
document.write((空),ToString(10)); / /
document.write((不确定),ToString(10)); / /
如果您不知道转换值是NULL或未定义的,则应该使用转换函数字符串(),如果NULL,它将返回NULL,如下所示:
document.write(字符串(空)); / /空
document.write(字符串(不确定) / /定义);
此外,在下一篇文章中
详细描述了对象类型。
以上是对Javascript数据类型的简单
介绍,希望能帮助您
学习Javascript数据类型。