侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 129023 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

javaScript的基本数据类型

2024-04-28 星期日 / 0 评论 / 0 点赞 / 2 阅读 / 12090 字

javascript有几种基本数据类型? 包含7种数据类型:字符串、数字、布尔、数组、对象、Null、Undefined; 其中ECMAScript 有 5 种原始类型(primitive ty

    javascript有几种基本数据类型?
    包含7种数据类型:字符串、数字、布尔、数组、对象、Null、Undefined;
   其中ECMAScript 有 5 种原始类型(primitive type),即 Undefined、Null、Boolean、Number 和 String,没有对象和数组。

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

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

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

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

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

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

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

 

 例如:

  1. 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类型的。

  1. //例子:  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就可以知道该变量是否保存了对象。

  1. //例如:  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。

  1. //例如:  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类型的变量赋值:

  1. var testBoolean = true;    var testBoolean1 = false;  

     

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

  1. //例如:  //将非空字符串转化成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
  1. var test = "a";    if(test){      alert("test转换成了true");  }//test转换成了true  

     

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

 

5、Number

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

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

  1. var intNum = 55 //整数  

     

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

  1. var octalNum1 = 070 //八进制的56    var octalNum2 = 039//无效的八进制---解析为十进制的39  

     

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

  1. var hexNum1 = 0xA//十六进制的10    var hexNum2 = 0x1f//十六进制的31  

     

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

  1. var hexNum1 = 0xA//十六进制的10    var hexNum2 = 0x1f//十六进制的31    alert(hexNum1+hexNum2);//输出41  

     

   (1)、浮点数

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

  1. var floatNum1 = 1.1//有效    var floatNum2 = 0.2//有效    var floatNum3 = .1//有效,但不推荐使用  

     

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

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

     

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

  1. var floatNum6 = 2.33e7 //等于23300000  

     

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

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

  1. var a = 0.2;  var b = 0.1    alert(a + b = 0.3)//输出false  

     

广告 广告

评论区