`
glzaction
  • 浏览: 86265 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

浅谈javascript的五种基本数据类型

阅读更多

     在javascript中申明变量使用的关键字都是var,这点与其他的编程语言不尽相同,但是javascript亦含有五种基本的数据类型(也可以说是简单数据类型),它们分别是:Undefined,Null,Boolean,Number和String。还含有一种复杂数据类型—Object。这里我们不谈复杂数据类型。

1、typeof
     typeof这个关键字是一定要说的,因为javascript是松散类型的,在变量申明时并没有使用与之类型相对应的关键字,如果在代码中想要获知某个变量的基本数据量,就可以使用typeof。这里要注意的是typeof返回的是字符串类型。

(1)、"undefined"——未申明,或者变量的值即为undefined或者未初始化;

(2)、"boolean"   ——如果这变量的值是布尔类型;

(3)、"string"       ——值是字符串类型;

(4)、"number"    ——值是数字类型;

(5)、"object"    ——对象或者值为null;

(5)、"function"    ——函数。

 

 例如:

var testString = "Hello";
var testBoobean = true;
var testUndefined = undefined;
var testUndefined1;
var testNull = null;
var testObject = {a:1};
var testFunction = function(){return;};

alert(testString);//"string"
alert(testBoobean);//"boolean"
alert(testUndefined);//"undefined"
alert(testUndefined1);//"undefined"
alert(testUndefined2);//"undefined"
alert(testNull);//"object"
alert(testObject);//"object"
alert(testFunction);//"function"
 

      在js中函数也是对象,但是函数又要一些区别与其他对象的特定,所以ECMAScript在使用typeof的时候将其区分开来。

 

2、Undefined

      这是一个很有意思的数据类型,因为它的值只有一个,那就是undefined。在申明变量时如果没有将变量赋值的话这个变量也是属于Undefined类型的。

 

例子:
var testUndefined;
var testUndefined1 = undefined;

//申明的时候没有赋值,那么解析器会自动给其赋值为undefined,所以输出为true
alert(testUndefined == undefined)//true
alert(testUndefined1 == undefined)//true
//根据上面所说的typeof返回的是字符串"undefined"所以输出为true
alert(typeof testUndefined == "undefined")//true

 

      如果一个变量没有申明就直接去访问解释器会报错误信息,但是这样的变量如果使用typeof返回的结果也是"undefined"。

 

3、Null

      Null也是一个只有一个值得数据类型,它的值就是null,任何变量只要给其赋值为null的话这个变量的数据类型就是Null类型。null值表示控对象指针,所以申明的变量要是想用来保存对象并且在申明之初还不能确定具体保存哪个对象的时候就将其赋值为null,在使用的时候只要检查该变量是否为null就可以知道该变量是否保存了对象。

 

例如:
var testNull = null;

//对null使用typeof返回的是"object"
alert(typeof testNull); //"object"

alert(testNull != null); //false

testNull = o {a:1};
alert(testNull != null);//true
 

      有上面的代码可以很清楚的看出如果将变量初始化为null那么只要判断其值是否为null就知道该变量是否保存了对象的引用,当然事先申明为null的变量也可以保存基本类型数据。

 

      其实null和undefined还是有点微妙的关系的,在javascript中undefined值派生自null,因此ECMA-26规定了它们的相等性测试为true。

 

例如:
alert(undefined == null)//true

var testNull = null;
var testUndefined = undefined;

alert(testNull == null)//true
alert(testNull == undefined)//true

alert(testUndefined == undefined)//true
alert(testUndefined == null)//true
 

在实际的编程中我们没有必要将一个变量赋值为undefined,但是却有很多情况下要将变量赋值为null,将变量赋值为null可以便于我们将它与undefined区分也便于垃圾回收处理。

 

4、Boolean

在javascript中Boolean类型用还是比较多的一种简单数据类型,它有两个值,分别是true和false,因为在javascript中字母是区分大小写的,所以True和False不是Boolean的值。

可以通过如下方式给Boolean类型的变量赋值:

 

var testBoolean = true;

var testBoolean1 = false;

 

 调用Boolean()方法可以将任何类型的值转化成与之相对应的Boolean类型的值,也就是可以将其转化成true或者false。

 

例如:
//将非空字符串转化成true
alert(Boolean("a"))//true
//将空字符串转化成false
alert(Boolean(""))//false
//将对象转化成true
alert(Boolean({a:"a"}))//true

 

 

将各种类型的值转化成Boolean类型的规则如下:

 

 

数据类型 转化成true的值 转化成false的值
Boolean           ture false
String 所有的非空字符串                 ""(空字符串)
Number 任何非零数字(包括无穷大)             0和NaN                                    
Object 任何对象 不存在
Undefined           不存在 undefined

 

 

var test = "a";

if(test){
    alert("test转换成了true");
}//test转换成了true

 运行上述代码会弹出一个框,并且在框中显示“test转换成了true”,这个例子说明在需要使用Boolean的地方,即使没有显示的调用Boolean()方法,解释器还是会自动的调用的,所有在使用的时候一定要注意。

 

5、Number

      javascript为了支持各种数值类型,定义了不同数值字面量格式。

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

 

var intNum = 55 //整数
 

     此外还有八进制和十六进制数的字面量。八进制在js中表示是第一位一定要是0,后面就是八进制字数序列(0~7),如果字面量值超出了范围,前面的0会被忽略,后面的值会被当成十进制解析。请看下面的例子:

 

var octalNum1 = 070 //八进制的56

var octalNum2 = 039//无效的八进制---解析为十进制的39
 

 十六进制字面量前两位必须是0x,后面跟十六进制数字(0~9及A~F)。字母A~F不区分大小写。

 

var hexNum1 = 0xA//十六进制的10

var hexNum2 = 0x1f//十六进制的31
 

 

 在进行数值计算时,不论是八进制还是十六进制最终都会被转化成十进制数值。

 

var hexNum1 = 0xA//十六进制的10

var hexNum2 = 0x1f//十六进制的31

alert(hexNum1+hexNum2);//输出41

   (1)、浮点数

浮点数就是带有小数点,并且小数点后至少有一位的数字的数。在javascript中赋值的时候对于    浮点数的小数点的前面可以没有数字,但是我们不推荐这种写法。下面是浮点数的几个例子:

var floatNum1 = 1.1//有效

var floatNum2 = 0.2//有效

var floatNum3 = .1//有效,但不推荐使用

        为了尽量减少内存的使用,ECMAScript会不失时机的将一些浮点数保存为整数,因为浮点数在   存储的时候占用的空间比整数多出一倍。哪种浮点数会被保存为整数呢?1、小数点后面没有数字       的;2、小数点后面全是0的。例如:

var floatNum4 = 1. //小数点后面没有数字的,会被保存为整数1

var floatNum5 = 1.0//小数点后面全是0,会被保存为整数1

        对于很大的或者很小的值,也可以用科学计数发的浮点类型表示。例如:

var floatNum6 = 2.33e7 //等于23300000

        在默认情况下ECMAScript会将小数点后面0的个数大于等于6个的数字用科学计数发表示。

浮点数值的最高精度是17位小数,但是在进行算术计算时其精度远远不如整数。例如,0.1加0.2的结果不是0.3,而是0.30000000000000004。这个舍入误差会导致无法测试特定的浮点数值。例如:

var a = 0.2;
var b = 0.1

alert(a + b = 0.3)//输出false

   (2)、数值范围

 

 

 

 

未完待续。。。

分享到:
评论

相关推荐

    浅谈javascript六种数据类型以及特殊注意点

    在js中常见的六种数据类型:String类型、Null类型、Number类型、Boolean类型、Object类型。 1、typeof的注意点 涉及到数据类型,不免会提到,操作符 typeof。要注意: 1、typeof是操作符,不是方法。虽然我们经常...

    浅谈javascript的数据类型检测

    悟透JavaScript>>写得太传神,印象太深刻了】 二、javascript的数据类型检测 1、万能的typeof 我们先测试一下通过typeof来获取简单数据类型。什么也别说了,上代码是王道: 代码如下: // 获取变量obj的数据类型 ...

    浅谈javascript中基本包装类型

    在JavaScript中,和JAVA类似,也提供了对于基本数据类型的包装类型。例如Number、Boolean、String类型。下面我们就来详细探讨下吧。

    浅谈JavaScript数据类型

    本文从javascript的数据类型的简介开始谈起,接着讲述了javascript的6种数据类型,分别为Number、Boolean、String、Null、Undefined和Object,并给出了一个typeof操作符的示例,这里分享给大家。

    浅谈js基本数据类型和typeof

    JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型 •null:空、无。表示不存在,当为对象的属性赋值为null,表示删除该属性 •undefined:未定义。当声明变量却没有赋值时会显示该值。可以为变量赋值为...

    浅谈JavaScript数据类型及转换

    JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed(3);//四舍五入保留3位小数。 3.String(字符串) 代码...

    浅谈javascript中的数据类型转换

    本文主要对javascript中的数据类型转换进行介绍,具有一定的参考价值,下面跟着小编一起来看下吧

    浅谈Javascript面向对象编程

    一、数据类型与包装类 包装类 …… 类型名 …… 常见值 …… 分类 Number …… number …… 123.123 …… 基本数据类型 Boolean …… Boolean …… true、false …… 基本数据类型 String …… string …… “hello...

    浅谈JavaScript中的string拥有方法的原因

    我们都知道,JavaScript数据类型分两大类,基本类型(或者称原始类型)和引用类型。 基本类型的值是保存在栈内存中的简单数据段,它们是按值访问的。JS中有五种基本类型:Undefined、Null、Boolean、Number和String...

    【JavaScript源代码】浅谈如何循序渐进的学好JS.docx

    浅谈如何循序渐进的学好JS  目录 概述1.清楚js的定位2.清晰的学习路线3.自律坚持4.多练多写5.从多角度去学习和领悟6.注意培养自信心7.多写学习总结8.构建专属知识导图 概述 1.清楚js的定位 2.清晰的学习路线 3...

    浅谈Javascript数组(推荐)

    在程序语言中数组的重要性... 数组,即Array类型,是开发中最常用的类型之一,javascript中的数组和其他语言最大的区别就是每一项可以保存任何类型的数据,而且数组的大小是可以动态调整的,有点绕?看看代码吧  1.

    浅谈javascript语法和定时函数

    (一)数据类型与变量类型。 整数,小数,布局,字符串,日期时间,数组 强制转换: parseInt() parseFloat() isNaN() (二)数组 var 数组名 = new Array([长度]); //“假冒”数组 a.length-长度 a[下标] = 值。 a...

    浅谈JavaScript中运算符的优先级

    运算符优先级 JavaScript中的运算符优先级是一套规则。...一元运算符、返回数据类型、对象创建、未定义值 * / % 乘法、除法、取模 + – + 加法、减法、字符串连接 << >> >>> 移位 <

    浅谈javascript中的 “ && ” 和 “ || ”|javascript-64438.pdf

    有时候,我们会在jQuery框架或者其他js插件中发现...在js逻辑运算中,我们知道 0、””、null、false、undefined、NaN 这五种数据类型是会被判断为false的。那么,我们在进行js的逻辑运算过程中,就可以根据上面的原理

Global site tag (gtag.js) - Google Analytics