当前位置: 首页 > 新闻动态 > 猜您喜欢 >

web前端之JavaScript数据类型

作者:深圳纯量网络 阅读: 发布时间:2024-08-15 05:00

摘要:ECMAScript 中有5种基本数据类型:Undefined、Null、Boolean、Number 和String。...

前端类__前端数据

ECMAScript 中有5种基本数据类型:Undefined、Null、Boolean、Number 和String。Undefined和Null前面已经介绍了,今天主要介绍Boolean、Number、String和Object类型。

一、Boolean类型

Boolean类型是ECMAScript中使用得最多的一种类型,该类型只有两个字面值:true和false。

需要注意的是,Boolean类型的字面值true和false是区分大小写的。也就是说,True和False(以及其他的混合大小写形式)都不是Boolean值,只是标识符。

ECMAScript 中所有类型的值都有与这两个Boolean值等价的值。要将一个值转换为其对应的Boolean值,可以调用转型函数Boolean():

var message = "Hello world!";
var messageAsBoolean = Boolean(message);

各种数据类型及其对 应的转换规则:

String:任何非空字符串->true ""(空字符串)->false

Number:任何非零数字值(包括无穷大)->true 0和NaN->false

Object:任何对象->true null->false

Undefined:n/a->true undefined->false

_前端类_前端数据

二、Number类型

Number类型应该是ECMAScript中包括整数和浮点数值。

最基本的数值字面量格式是十进制整数,十进制整数可以像下面这样直接在代码中输入:

var intNum = 55; // 整数

1. 浮点数值

浮点数值,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。虽然小数点前面可以没有整数,但我们不推荐这种写法。

var floatNum1 = 1.1;
var floatNum2 = 0.1;
var floatNum3 = .1; // 有效,但不推荐

在默认情况下,ECMASctipt 会将那些小数点后面带有 6 个零以上的浮点数值转换为以 e 表示法 表示的数值

2. 数值范围

由于内存的限制,ECMAScript并不能保存世界上所有的数值。ECMAScript能够表示的最小数值保存在Number.MIN_VALUE中;能够表示的最大数值保存在Number.MAX_VALUE中。如果某次计算的 结果得到了一个超出JavaScript数值范围的值,那么这个数值将被自动转换成特殊的Infinity 值。具体来说,如果这个数值是负数,则会被转换成-Infinity(负无穷),如果这个数值是正数,则会被转 换成 Infinity(正无穷)。

如果某次计算返回了正或负的 Infinity 值,那么该值将无法继续参与下一次的计算, 因为 Infinity 不是能够参与计算的数值。要想确定一个数值是不是有穷的(换句话说,是不是位于最 小和最大的数值之间),可以使用 isFinite()函数。这个函数在参数位于最小与最大数值之间时会返回true。

3. NaN

NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。

NaN本身有两个非同寻常的特点。首先,任何涉及NaN的操作(例如 NaN/10)都会返回NaN,这个特点在多步计算中有可能导致问题。其次,NaN与任何值都不相等,包括NaN本身。

alert(NaN == NaN); //false

ECMAScript 定义了isNaN()函数。这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值”。isNaN()在接收到一个值之后,会尝试将这个值转换为数值。

alert(isNaN(NaN));//true
alert(isNaN(10)); //false(10 是一个数值)
alert(isNaN("10"));//false(可以被转换成数值 10)
alert(isNaN("blue")); //true(不能转换成数值) 
alert(isNaN(true));//false(可以被转换成数值 1)

4. 数值转换

有 3 个函数可以把非数值转换为数值:Number()、parseInt()和 parseFloat()。第一个函数, 即转型函数 Number()可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。

Number()函数的转换规则如下

如果字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,即"1" 会变成 1,"123"会变成 123,而"011"会变成 11(注意:前导的零被忽略了);如果字符串中包含有效的浮点格式,如"1.1",则将其转换为对应的浮点数值(同样,也会忽略前导零);如果字符串中包含有效的十六进制格式,例如"0xf",则将其转换为相同大小的十进制整数值;如果字符串是空的(不包含任何字符),则将其转换为0;如果字符串中包含除上述格式之外的字符,则将其转换为 NaN。如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是 NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串值。

_前端类_前端数据

三、String类型

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

引号(")或单引号(')表示,用双引号表示的字符串和用单引号表示的字符串完全相同。因此下面两种字符串的写法都是有效的:

var firstName = "Nicholas";
var lastName = 'Zakas';

不过,以双引号开头的字符串也必须以双引号结尾,而以单引号开头的字符串必须以单引号结尾。

下面这种字符串表示法会导致语法错误:

var firstName = 'Nicholas"; // 语法错误(左右引号必须匹配)

1. 字符字面量

String数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其 他用途的字符。

字符字面量如下表所示:

\n 换行

\t 制表

\b 空格

\r 回车

\f 进纸

\\ 斜杠

\' 单引号('),在用单引号表示的字符串中使用。

\" 双引号("),在用双引号表示的字符串中使用。

\xnn 以十六进制代码nn表示的一个字符(其中n为0~F)。

\unnnn 以十六进制代码nnnn表示的一个Unicode字符(其中n为0~F)。

2. 字符串的特点

ECMAScript中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变 某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量, 例如:

var lang = "Java";
lang = lang + "Script";

3. 转换为字符串

要把一个值转换为一个字符串有两种方式。第一种是使用几乎每个值都有的 toString()方法。这个方法唯一要做的就是返回相应值的字符串表现。来看下面的例子:

var age = 11;
var ageAsString = age.toString(); // 字符串"11" 
var found = true;
var foundAsString = found.toString(); // 字符串"true"

数值、布尔值、对象和字符串值(没错,每个字符串也都有一个toString()方法,该方法返回字符串的一个副本)都有 toString()方法。但null和undefined值没有这个方法。

在不知道要转换的值是不是 null 或 undefined 的情况下,还可以使用转型函数 String(),这个 函数能够将任何类型的值转换为字符串。String()函数遵循下列转换规则:

var value1 = 10; 
var value2 = true; 
var value3 = null; 
var value4;
alert(String(value1));// "10"
alert(String(value2));// "true"
alert(String(value3));// "null"
alert(String(value4));// "undefined"

这里先后转换了 4 个值:数值、布尔值、null和undefined。数值和布尔值的转换结果与调用toString()方法得到的结果相同。因为null和undefined没有 toString()方法,所以String()函数就返回了这两个值的字面量。

要把某个值转换为字符串,可以使用加号操作符把它与一个字符串("")加在一起。

前端类_前端数据_

四、Object类型

ECMAScript中的对象是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。而创建Object类型的实例并为其添加属性和(或)方法,就可以创建自定义对象,如下:

var o = new Object();

这个语法与Java 中创建对象的语法相似;但在ECMAScript中,如果不给构造函数传递参数,则可 以省略后面的那一对圆括号,如下:

var o = new Object; // 有效,但不推荐省略圆括号

理解一个重要的思想:在ECMAScript中, (就像 Java 中的 java.lang.Object 对象一样)Object 类型是所有它的实例的基础。即Object 类型所具有的任何属性和方法也同样存在于更具体的对象中。

Object 的每个实例都具有下列属性和方法:

由于在 ECMAScript中Object 是所有对象的基础,因此所有对象都具有这些基本的属性和方法。

  • 原标题:web前端之JavaScript数据类型

  • 本文由深圳纯量网络小编,整理排版发布,转载请注明出处。部分文章图片来源于网络,如有侵权,请与纯量网络联系删除。
  • 微信二维码

    CLWL6868

    长按复制微信号,添加好友

    微信联系

    在线咨询

    点击这里给我发消息QQ客服专员

    点击这里给我发消息电话客服专员

    在线咨询

    免费通话


    24h咨询☎️:132-5572-7217


    🔺🔺 24小时客服热线电话 🔺🔺

    免费通话
    返回顶部