javascript数据类型学习笔记

javascript数据类型学习笔记
有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数据类型。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部