javascript 中的数据类型

javascript 中有5中数据类型:undefined、null、Boolean、Number、String,用typeof 检测数据类型。

1 Undefined :Undefined  只有一个值,即 undefined ,在用 var 声明变量但未对其加以初始化时,这个变量就是undefined。

注意:对未声明的变量执行typeof 返回的也是 undefined。

2  Null:NUll也只有一个值,null。从逻辑角度看,null 表示一个空对象指针。所以  typeof  null 返回的是 object。实际上,undefined 是派生自null 值的,所以 null ==undefined 返回的是 true。

3 Boolean:有两个值,true 和 false。Boolean  类型的字面值 true 和 false  是区分大小写的。也就是说 True  和  False  都不是Boolean 值,只是标识符。可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean 值。

 var flag = "Hello World!";
 var msg = Boolean(flag);

  各种数据类型与Boolean类型的转换规则如下表所述:

数据类型 转换为true 转换为false
Boolean true false
 String  任何非空字符串  ""空字符串 
 Number  任何非0数值,包括无穷大  0和NaN
 Object  任何非空对象  null
 Undefined  n/a(not applicable 不适用)  undefined

根据以上规则,我们可以写出下面的一个代码实例:

function test(){
   var flag = "Hello World!";
   if(flag){
       alert("write:true");
   }else{
       alert("write:false");
   }
}

4 Number:用IEEE754 格式来表示整数和浮点数,为了支持各种数值类型,ECMA-262 定义了不同的数值字面量格式。

var intNum = 55;//十进制整数

var octalNum = 070;//八进制 56,以8为基数,八进制字面值得第一位必须是0,后然是八进制数字序列0~7,如果字面值超出了范围,那么前导0将被忽略,后面竖直将被当作十进制解析。

var hexNum = 0x1f;//十六进制的31,前两位必须是0x,后面跟0~9及A~F(大小写都可以)的十六进制数字序列。

(1)浮点数:可以用科学记数法表示,3.125e7、3e-7。浮点数值的最高精度是17为小数,但在进行算术计算时其精度远远不如整数。例如,0.1 加 0.2 的结果不是0.3,而是0.30000000000000004。这个小小的舍入误差会导致无法测试特定的浮点数值。例如

if(a + b ==0.3){

  alert("You got 0.3 . ");

}

在这个例子中,我们测试的是两个数的和是不是等于0.3。如果这两个数是0.05 和0.25,或者是0.15 和 0.15 都不会有问题,但如果是0.1 和 0.2,那么测试将无法通过。所以,永远不要测试某个特定的浮点数值。(浮点数计算产生误差的问题,是基于IEEE754 数值的浮点计算的通病,所以其他语言也存在这个问题。)

(2)数值范围:5e-324 到 1.7976931348623157e+308。如果数值超出范围,则自动转换成特殊的Infinity(-Infinity) 值,这时,该值将无法继续参与下一次计算。要判断一个数值是不是无穷可以用isFinite()函数。

(3)NaN:非数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况,例如任何数值除以0 返回NaN。任何涉及NaN的操作(NaN/10)都会返回NaN,NaN与任何值都不相等,包括NaN 本身。用isNaN()可以判断是不是"不是数值",isNaN ()也适用于对象。

(4)数值转换:Number()、parseInt()、parseFloat()。Number():可以用于任何数据类型。ParseInt()、parseFloat():专门用于把字符串转换成数值。三个函数对于同样的输入会有返回不同的结果。

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

如果是Boolean 值,true 和 false 分别被转换成1和0;

如果是数字,只是简单的传入和返回;

如果是null ,返回0;

如果是undefined ,返回NaN;

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

如果字符串只包含数字(包括前面带正负号的情况),则将其转换为十进制数值,如"011"会变成11(前导0被忽略);

如果字符串中包含有效的浮点格式,则将其转换成浮点值(前导0被忽略);

如果字符串中包含有效的十六进制,如"0xf",则将其转换成相同大小的十进制整形数值;

如果字符串是空的(不包含任何字符),则转换成0 ;

如果字符串中包含除上述以外的字符,则将其转换成NaN;

如果是对象,调用valueOf()方法,依照前面规则转换。

parseInt():该函数在转换字符串时,更多的是看其是否符合数值模式。它会忽略字符串前面的空格,直到找到第一个非空字符。如果第一个非空字符不是数字字符或负号,就会返回NaN,即parseInt("")=NaN,而Number("")=0,parseInt(‘1234blue ‘)=1234,parseInt(‘22.5‘)=22。parseInt(‘0xAF‘,16) =parseInt(‘AF‘,16),第二个参数指定是十六进制。

parseFloat():与ParseInt()类似,区别是:字符串中第一个小数点是有效的,后面的就是无效的;还有它只解析十进制的,没有第二个参数。

5 String:字符串,该类型包含一些特殊字符,即转义序列。

转换成字符串的方法:

toString():数值、布尔值、对象、字符串值都有这个方法,但是null、undefined的值没有这个方法;该方法可以传递参数,即二进制、十进制等,num.toString(10);

String():其他类型与toString()相同,但是null 返回"null",undefined 返回"undefined"。

6 特殊类型:Object

创建:var o = new Object();

构造函数constructor:如 Object();

检测属性是否存在hasOwnProperty():o.hasOwnProperty("name");

toString();

valueOf();

时间: 2024-11-10 00:54:25

javascript 中的数据类型的相关文章

Javascript中的数据类型之旅

虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number.String.Boolean.Object.Udefined.Null.其中,Object属于复杂数据类型,Object   由无序的键值对组成.其余几种都属于简单数据类型.注意:变量类型首字母大写,而变量值首字母是小写的. JavaScript不支持自定义类型,所以JavaScript中的所有值都属于这六种类型之一.根据ECMAScript 5.1的规范,javascript中共有六种数据类型,分别为:

【译】Javascript中的数据类型

这篇文章通过四种方式获取Javascript中的数据类型:通过隐藏的内置[[Class]]属性:通过typeof运算符:通过instanceof运算符:通过函数Array.isArray().我们也会看看原型对象的构造函数,可能会有意想不到的数据类型结果. [这篇文章是我在adobe发布的文章,我发布在这里只是为了存档.] 知识储备 在开始我们的话题之前,我们不得不复习一些所需的知识点 1.1 原始值和对象 Javascript中的数据,要么是原始值,要么是对象. 原始值.下面是原始值: und

JavaScript中的数据类型和数据类型转换

JavaScript中的数据类型主要有两种,一种是基本数据类型,包括Number,String,Null,Undefined,Boolean,还有一种是引用类型Object typeof是操作符,返回值为String ,返回值包括 undefined,number,string,boolean,object,function. 未经初始化的变量会被保存为undefined 原文地址:https://www.cnblogs.com/sz-toosimple/p/11061794.html

在javaScript中检测数据类型的几种方式

在用javaScript编程的过程中,我们经常会遇到这样一个问题,就是需要检测一个数据或变量的类型,那么在javaScript中给我们提供了哪些方法呢?网上流传的代码比比皆是,但是发现其中有些是有误的,索性我自己动手把每种方法用了一遍,今天我专门整理了下,以便以后查阅. 一.typeof  检测 typeof 是一个一元运算符,语法:typeof(运算数),运算数可以是任意类型.它的返回值是一个字符串,该字符串说明运算数的类型. 1 // var arr = { name:"john"

JavaScript中的数据类型

JavaScript中包含五种基本数据类型(原始数据类型),分别是:undefined, null, number, boolean, string; 和一种引用类型 Object,引用类型中包含特殊的一类:Function类型.number, boolean, string三种基本类型对于有包装类型 Number,Boolean,String,这三种包装类型是对象类型. 针对这些类型,下面分别解释: 1. typeof 操作符 可以通过此操作符获取变量的类型,操作返回值为字符串,如下7种:"n

Javascript中的数据类型知多少

JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定.这也意味着你可以使用同一个变量保存不同类型的数据 根据ECMAScript 5.1的规范,javascript中共有六种数据类型,分别为:Undefined, Null, Boolean,Number, String.Object.前五种属于基本类型,最后一种属于Object类型. 最新的ECMAScript 6 又加了一种类型:Symbol (ECMAScript 6 新定义

javaScript中的数据类型和命名规则

有7种数据类型: undefined(未定义) null(空), boolean(布尔型) string(字符串) symbol(符号), number(数字) object(对象) 命名规则 Variable (变量)的名字可以由数字.字母.$ 或者 _组成,但是不能包含空格或者以数字为首. 注意: 当 JavaScript 中的变量被声明的时候,程序内部会给它一个初始值 undefined.当你对一个值为 undefined 的变量进行运算操作的时候,算出来的结果将会是 NaN,NaN 的意

JavaScript中基本数据类型和引用数据类型的区别

1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值. 2.常见的基本数据类型: Number.String .Boolean.Null和Undefined.基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值.示例: var a = 10; var b = a; b = 20;

简单回忆一下JavaScript中的数据类型

说到JavaScript,大家都应该知道,它是一门脚本语言,也是一门弱类型语言,也是一门解析型的语言,同时也是一门动态类型的语言. 很好,至于JavaScript中数据类型.其分为基本数据类型和复杂数据类型,或者可以理解为值类型和引用类型. 基本数据类型中有这些:String,Number,Boolean,undefined,null. 复杂数据类型就是我们经常与其周旋不停的:Array, Date,Object,RegExp等等. 而其中的undefined和null也是空类型:String,