javascript数据类型详细解决方案

javascript数据类型详细解决方案
数据类型

Javascript中有5种简单的数据类型(也称为基本数据类型):未定义的、空的、布尔的、数字的和字符串的。有1种复杂的数据类型,对象,基本上是由一组无序的名字值组成的。

typeof运算

Javascript是松散类型的,因此需要一种方法检测给定变量的数据类型。Typeof是经营者,负责供应商的信息。一个价值typeof运算符的使用可能会返回一个字符串的下面:

未定义-如果没有定义这个值;

布尔-如果这个值是布尔值;

字符串-如果这个值是一个字符串;

数字如果这个值是一个值;

对象-如果这个值是一个对象或null;

函数-如果这个值是一个函数;

未定义的类型

未定义的类型只有一个值,即一个特殊的未定义。当VaR声明变量但未初始化时,变量的值是未定义的,例如:

复制代码代码如下所示:

VaR的消息

警报(消息=未定义)
零式

null类型只有一个值的第二数据类型,这个值是无效的。从逻辑上来看,空值表示一个空的对象指针,这就是为什么它返回当使用typeof运算符检测空对象,例如:

复制代码代码如下所示:

var汽车=空;

警报(型车); / /对象
如果已定义的变量准备在将来用于保存对象,最好将变量初始化为null,而不是其他值:

复制代码代码如下所示:

如果(汽车)!= null)

{

对车辆对象执行某些操作

}
事实上,未定义的值是来自空值,所以ECMA-262指定它们的等价测试将返回真。

复制代码代码如下所示:

警报(未定义的= NULL)
虽然零和不确定有这样的关系,它们的用途完全不同,不需要显式设置一个变量的值在任何情况下,但同样的规则并不适用于零。换句话说,只要变量,用于保存对象并没有真正保存对象的,应当明确允许保存空值。这不仅体现为一个空的对象指针无效的实践,也有助于进一步区分和定义之间的空。

布尔型

这个类型只有两个字面值:真和假。这两个值与数值不一样,所以真不一定等于1,而false不一定等于0。

尽管布尔类型的文字值只有两个,但Javascript中的所有类型的值都具有与这两个布尔值相等的值:

复制代码代码如下所示:

VaR消息=你好世界;

无功messageasboolean =布尔(消息);
在这个例子中,字符串消息转换为布尔值,它是保存在messageasboolean变量。布尔()函数可以调用任何数据类型的值,和一个布尔值将始终返回。返回的值是true或false,取决于数据类型和价值转换成实际价值。下表给出了不同的数据类型和对象的转换规则。
这些转换规则自动执行相应的布尔转换,以理解流控制语句(如if语句)。

改变是非常重要的,例如:

复制代码代码如下所示:

VaR消息=你好世界;

如果(消息)

{

警报(值为真);

}
运行此示例将显示一个警告框,因为字符串消息将自动转换为相应的布尔值(true)。

编号类型

这种类型是用来表示整数和浮点值,并有特殊的价值,楠(非数字不是数字)。这个值是用来表示数目的操作数,将返回值没有返回值(这样的错误不会被抛出)。例如,在其他编程语言,任何数除以0导致错误,并停止执行代码。但在Javascript,任何价值除以0将返回NaN,所以它不会影响其他的代码执行。

南方本身有两个不寻常的特征:第一,任何涉及到南方的操作,比如南/ 10,返回到南方,这可能会导致多步计算的问题。第二,楠不等于任何值,包括南方本身,例如,下面的代码将返回false。

复制代码代码如下所示:

警报(南方=); / false
有一个isnan()函数在Javascript。这个函数接受一个参数,可以使任何类型和功能将帮助我们确定这个参数是不numerical.isnan()将尝试转换价值为价值接收值后,值不是数字将直接转换为数字值,如字符串或布尔值有10。值不能转换为值使函数返回真。例如:

复制代码代码如下所示:

警报(isnan(南)); / /真的

警报(isnan(10)); / /假(10值)

警报(isnan(10)); / /假(可转换为值10)

警报(isnan(蓝色)); / /真实(不转换为价值)

警报(isnan(真正的) / /);假(可转换为值1)
有3种功能,可以转换为数字值:数()(),parseInt(),和parseFloat()。第一个函数,转换函数数(),可用于任何类型的数据,而其他两个功能是专门用于将字符串转换成数字值。这些3函数返回相同的输入不同的结果。

数字()函数的转换规则如下所示:

如果是布尔值,则分别为1和0。

如果它是一个数值,它只是简单地介绍和返回。

如果为空值,返回0。

如果未定义,返回到南

如果是字符串,则遵循以下规则:

如果字符串只包含数字,它将被转换为十进制数字值,也就是说,1将把1123变成123,011将变成11(领先的0被忽略)。

如果字符串包含有效的浮点格式(如1.1),则转换为相应的浮点数(相同的也忽略了前导码0)。

如果字符串包含一个有效的十六进制格式,如0xf,它转换为十进制相同大小的整数。

如果字符串为空,则将其转换为0。

如果字符串包含上述格式以外的字符,则字符串被转换为南方。

If it is an object, the valueOf () method of the object is called, and the value returned is then converted in accordance with the previous rule.If the result of the transformation is NaN, the toString () method of the object is called, and then the returned string value is then converted in accordance with the previous rule.

复制代码代码如下所示:

VaR num1 =数(Hello World); / /南

VaR num2 =数(); / / 0

VaR小键盘数字3 =数(000011); / / 11

VaR NUM4 =数(true); / / 1
因为数量()函数是更复杂的和不合理的转换成一个字符串时,该parseInt()函数是比较常用的在处理整数。当parseInt()函数将一个字符串,它更多的是看它是否符合数值模式。它忽略了空间前面的字符串,直到第一个非空白字符被发现。如果第一个字符串不是一个数字或减号(parseInt)将返回NaN;也就是说,与parseInt()将返回一个空字符串转换南。如果第一个字符是一个数字字符,praseint()将继续解析二字,知道随后的所有字符都解决了,或一个非数字字符时。例如,1234blue 将转换把1234和22.5将被转换为22,因为小数点是不是一个有效的数字字符。

如果字符串中第一个字符是一个数字字符,parseInt()也可以识别各类整数格式(十进制,八进制,十六进制)。为了更好地理解的parseInt转换规则()函数,下面给出了一些例子

复制代码代码如下所示:

VaR num1 = parseInt(1234blue ); / / 1234

VaR num2 = parseInt(); / /南

VaR小键盘数字3 = parseInt(0xa ); / / 10(十六)

VaR NUM4 = parseInt(22.5); / / 22

无功num5 = parseInt(070); / / 56(八进制)

VaR NUM6 = parseInt(70); / / 70

无功num7 = parseInt(10

VaR的个数= parseInt(10

无功num9 = parseInt(10

无功num10 = parseInt(10

无功num11 = parseInt(AF); / / 56(八进制)

无功num12 = parseInt(AF
类似于parseInt()函数parseFloat()也是解析每个字符从第一个字符(0位),它始终是解析到一个字符串的末尾,或解析到一个无效的浮点数特征。也就是说,字符串中第一个小数点是有效的,并二小数点是无效的,所以它后面的字符串将被忽略。例如,22.34.5将被转换为22.34。

之间的差异)和二parseFloat(parseInt(),它总是忽略前导零。因为parseFloat()价值解析的十进制值,它没有使用指定的基数与二参数。

复制代码代码如下所示:

VaR num1 = parseFloat(1234blue ); / / 1234

VaR num2 = parseFloat(0xa ); / / 0

VaR小键盘数字3 = parseFloat(22.5); / / 22.5

VaR NUM4 = parseFloat(22.34.5 ); / / 22.34

无功num5 = parseFloat(908.5); / / 908.5
字符串类型

字符串类型用于表示由零个或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由单引号(或)或双引号()表示。

复制代码代码如下所示:

Var STR1 = Hello;

VaR str2 =你好;
任何字符串的长度都可以通过访问它的长度属性获得。

复制代码代码如下所示:

警报(str1。长度); / /输出5
有两种方法可以将值转换为字符串。首先是toString()方法,使用几乎所有的价值。

复制代码代码如下所示:

var年龄= 11;

var = age.tostring(ageasstring); / /字符串11

var =真值;

var = found.tostring(foundasstring); / /字符串真实
值,布尔值,对象和字符串值的toString()方法,但为未定义的值没有这个方法。

在大多数情况下,调用toString()方法没有传递参数。然而,当ToString()值的方法被调用时,参数可以通过:输出值的基数。

复制代码代码如下所示:

var = 10;

警报((num.tostring)); / / 10

警报(num.tostring(2)); / / 1010

警报(num.tostring(8)); / / 12

警报(num.tostring(10)); / / 10

警报(num.tostring(16)); / /
正如你可以看到,通过这个例子,toString()方法通过指定基数变化的输出值,数字10可以转换为不同的数值格式的输出,根据不同的基数。

如果您不知道要转换的值是null或未定义的,也可以使用转换函数String(),它可以将任何类型的值转换为字符串:

如果该值有一个toString()方法,该方法被称为(无参数)和相应的返回结果。

如果值为NULL,则返回null。

如果值未定义,则返回到未定义的值。

复制代码代码如下所示:

VaR值= 10;

VaR value2 =真;

VaR值= null;

VaR的珍惜;

警报(字符串(中)); / / 10

警报(字符串(2)); / /真实

警报(字符串(值)); / /空

警报(字符串(珍惜) / /定义);
对象类型

一个对象实际上是一组数据和函数,可以通过创建要创建的对象类型的名称来执行新的操作符来创建对象,创建自定义对象可以通过创建对象类型的实例并为它添加属性和(或)方法来创建。

复制代码代码如下所示:

新对象();
该对象的每个实例具有以下属性和方法:

-构造函数-保存函数来创建当前对象

HasOwnProperty(propertyName)是用来检查是否一个给定的属性存在于当前对象实例(而不是一个实例的原型)。在这方面,属性名(属性名),作为一个参数,必须在一个指定的字符串形式(例如:o.hasownproperty(名称))

IsPrototypeOf(对象)的原型,用来检查是否输入的对象是另一个对象

propertyisenumerable(propertyName)-检查是否一个给定的属性可以用在声明中列举了

- toString()返回对象的字符串表示形式的

valueOf()的字符串,值或布尔值返回的对象,它通常是作为toString返回值相同()方法。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部