JavaScript中的数据类型总结

  • 格式:pdf
  • 大小:97.32 KB
  • 文档页数:2

JavaScript中的数据类型总结

Javascript是⼀种弱类型语⾔,没有明确的类型分类;⽹上分类的⽅式⽐较多,个⼈感觉不⽐去特别的追究细分是什么什么类型,若是能够

明确的分出类型的话,javascript就不是弱类型语⾔,⼜由于⼤家所使⽤的主体语⾔概念不完全相同(像C#,PHP,C语⾔等),分类的时

候就会根绝⾃⼰的主体语⾔的习惯来分类,⽆论怎样分类只要有助于⾃⼰的理解,能够⽅便,正确灵活的使⽤就可以了;下⾯是两是种常见

的分类⽅式和⼀些必须了解的基础⽤法知识;

⼀、第⼀种分类⽅式,也是⽐较常见的⼀种分类⽅法:

分为9种类型:分别是Undefined,Boolean,Object,Number,Null,String,Reference,List,Completion,其中Reference,List,Completion三种类型仅

共语⾔解析运⾏时使⽤,⽆法从程序中直接访问;下⾯⼀⼀介绍;

1、Undefined 类型:是全局对象window的⼀个特殊属性,顾名思义就是未定义的意思;Undefined类型只有⼀个值Undefined,表⽰⼀个变

量定义了但未赋值;

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

下⾯是⼏种常见的会出现undefined的情况:

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

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

(3)javascript中的参数有多个形参的话,若果调⽤参数的话,参数数量⼩于形参数量,那么其他的参数值就为undefined;

2、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"); //能进⼊

}

3、Number类型:表⽰数值,包含了所有的数值类型,不像⾼级语⾔那么细分成int,double,deciable,他的取值范围是:

1.7976931348623157E+308到-1.7976931348623157E+308之间,就是1.7976931348623157*10的308次⽅到-1.7976931348623157*10

的308次⽅之间;Number类型有⼀个特殊的值NaN,他是Number类型中⼀个⾮数值的值,就像⽆穷⼤,所以NaN不等于NaN;

4、Object类型:⽤来表⽰⼀个对象,像String, Array,new ⼀个对象等,当这个对象为空时,就是null了;所以alert( typeof(null))的

弹出值为object;

5、String类型:string类型是javascript中的⼀个⽐较重要的类型,它⽤来表⽰⼀个字符串,我们在写脚本的时候需要处理很多的字符串,所

以javascript库中也提供了很多字符串处理⽅法,⽹上已有很多资料了,这⾥就不⼀⼀细说了;

6、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"));//弹出123alert(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);

⼆、第⼆种分类⽅法:⽤typeof()关键字来分类,可以分为:undefined,number,string,boolean,object,function

类型例⼦运⾏结果

Undefinedvar a1; alert(typeof(a1));

function way{} alert(way());

alert(typeof(way()))undefined

numberVar num1=12; alert(typeof(num1));number

stringVar num2=”12”; alert(typeof(num2));string

booleanVar flag=true; alert(typeof(flag));boolean

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

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

functionalert(typeof(String));function