JavaScript中的数据类型总结

Javascript是一种弱类型语言,没有明确的类型分类;网上分类的方式比较多,我的感受不比去特别的追究细分是什么什么类型,如果可以明确的分出类型的话,javascript就不是弱类型语言,又因为你们所使用的主体语言概念不彻底相同(像C#,PHP,C语言等),分类的时候就会根绝本身的主体语言的习惯来分类,不管怎样分类只要有助于本身的理解,可以方便,正确灵活的使用就能够了;下面是两是种常见的分类方式和一些必须了解的基础用法知识;javascript

1、第一种分类方式,也是比较常见的一种分类方法:java

分为9种类型:分别是Undefined,Boolean,Object,Number,Null,String,Reference,List,Completion,其中Reference,List,Completion三种类型仅共语言解析运行时使用,没法从程序中直接访问;下面一一介绍;函数

一、Undefined 类型:是全局对象window的一个特殊属性,顾名思义就是未定义的意思;Undefined类型只有一个值Undefined,表示一个变量定义了但未赋值;spa

如:var a;  alert(a); // 弹出undefined;code

下面是几种常见的会出现undefined的状况:对象

(1)获取一个对象的属性(本来属性和protoType扩展的属性)不存在时,返回undefined;blog

(2)当一个函数function(){}没有明确的返回值时,显示undefined,例子:function way(){}  alert(way());//弹出undefined;ip

(3)javascript中的参数有多个形参的话,若果调用参数的话,参数数量小于形参数量,那么其余的参数值就为undefined;ci

二、Null类型:null是javascript保留的关键字,null类型也只有一个null值,表示为空或者不存在的对象引用;字符串

(1)javascript中的if()判断语句不管是null类型仍是undefined类型他们的返回值都是false,也就是说一个变量如果null 或者undefined那么他就为false;

if (null){
   alert("sdf");//进入不了
  }
if (undefined){
   alert("sdfsdf");//进入不了
  }
var a=12;
if (a){
    alert("sdf");  //能进入
}

三、Number类型:表示数值,包含了全部的数值类型,不像高级语言那么细分红int,double,deciable,他的取值范围是:1.7976931348623157E+308到-1.7976931348623157E+308之间,就是1.7976931348623157*10的308次方到-1.7976931348623157*10的308次方之间;Number类型有一个特殊的值NaN,他是Number类型中一个非数值的值,就像无穷大,因此NaN不等于NaN;

四、Object类型:用来表示一个对象,像String, Array,new 一个对象等,当这个对象为空时,就是null了;因此alert( typeof(null))的弹出值为object;

五、String类型:string类型是javascript中的一个比较重要的类型,它用来表示一个字符串,咱们在写脚本的时候须要处理不少的字符串,因此javascript库中也提供了不少字符串处理方法,网上已有不少资料了,这里就不一一细说了;

六、Boolean类型:布尔类型你们都很熟悉,这里说几个他的特殊用法:(1)boolea类型和Number类型相结合时,true转化为1,false转化为0;

var a = true;
        alert(a+1);//弹出2
var a = true;
        alert(a);//弹出true

上述六种类型也能够相互转化,基本上是数值和字符串和布尔值之间的转化:

(1)       Number类型转化为string类型,用tostring();

(2)       String类型转化为Number,用Number();

var str = "123";
var num = 1;
alert(str + num);//弹出1231
alert(Number(str)+num) //弹出124

也可使用全局函数parseInt()和parseFloat()来进行转换;parseInt()和parseFloat()的区别是Number()转换是整个值,而parseInt()和parseFloat()则能够只转换开头的数字部分。

alert(Number("123asdf"));//弹出NaN
alert(Number("1.2.3"))//弹出NaN
alert(parseInt("123sdf"));//弹出123
alert(parseFloat("sdfsdf"));//弹出NaN
alert(parseInt("sdf345"))//弹出NaN

Number()在转化的过程当中布尔类型的true和false分别被转化为1和0其余的不能转化为数值的所有转化NaN。

alert(Number(true));//弹出1
 alert(Number(false));//弹出0
alert(Number(null));//弹出0

其余的如果不能转化为数值类型的,基本上全转化为NaN;

扩展小知识:(1)判断一个变量是不是数值,用IsNan()方法;

                 (2)在javascript中==和===的区别: "==" 只要求值相等; "===" 要求值和类型都相等;

                 (3)instanceof只是用于判断object是不是class类的一个实例,是的话返回true,不然返回false;alert(a instanceof String);

2、第二种分类方法:用typeof()关键字来分类,能够分为:undefined,number,string,boolean,object,function

   

类型

例子

运行结果

Undefined

var a1; alert(typeof(a1));

function way{}  alert(way()); alert(typeof(way()))

undefined

number

Var num1=12; alert(typeof(num1));

number

string

Var num2=”12”; alert(typeof(num2));

string

boolean

Var flag=true; alert(typeof(flag));

boolean

object

Var str=new string(); alert(typeof(str));

Var a=null; alert(typeof(a));

object

function

alert(typeof(String));

function

相关文章
相关标签/搜索