变量的数据类型

一个变量的类型,由变量的值来决定。

基本数据类型:字符型(String)、数值型(Number)、布尔型(Boolean)Undefined(未定义型)Null(空型)

复合数据类型:数组(Array)、对象(Object)、函数(Function)


注意:基本数据类型和复合数据类型的主要区别:基本数据类型的值只有一个,而复合数据类型的值可以多个

 

1、数值型数据(Number)

       数值型数据包含整型和浮点型(小数)

       Var a = 100;

       Var a = 0;

       Var a = -100;

       Var a = 0.987;

       Var a = NaN; //特殊的一个

 

       数值型数据有一个特殊的值NaN,它的含义是not a number。用在:将其它类型的数据转成数值型时,转不过来时,将返回NaN

       举例:将var a = “abc”;  转成数值时,转不过去,就会返回NaN值。

      

2、字符型数据(String)

       用单引号或双引号,引起来的一个字符串。

       Var a = ‘abc’;

       Var a = “你好”;    //JS中每行语句写完后,以“;”号结束,分号不是必须的,但建议大家写

       Var a = “120”;   //也是字符串

      

       如果在双引号内再套双引号时,内层的双引号,应该使用转义字符 \”来代表双引号。

       如果在单引号内再套单引号时,内层的单引号,应该使用转义字符 \’来代表单引号。

       转义字符的作用:当浏览器遇到“\”符号时,会将其后的字符进行特殊处理

var a = "中国\"浙江\"杭州";

document.write(a);

3、布尔型(Boolean)

       布尔型数据只有两个结果,真或假,是或否;

       布尔型数据只有两个值:truefalse

      

       Var isMarried = true;  //婚否只有两个可能:已婚、未婚

       Var sex = true;       //性别只有两个结果:男、女

       Var isRead = false;    //邮箱读取状态:已读、未读

 

4未定义型(undefined)

       当一个变量定义了,但没有赋值,会返回undefined,它的值只有一个“undefined

<script type="text/javascript">

var a = "中国\"浙江\"杭州";

var b;

var isRead = true;

document.write(typeof(isRead));  // 结果为:Boolean

</script>


5null(空型)

       当一个对象不存在时,将返回nullnull的数据类型的值只有一个null

       window.prompt()弹出一个输入对话框

    var str = window.prompt("请输入你的分数");

    document.write(typeof(str)+""+str);

 

判断一个变量的函数:typeof()

语法格式:string typeof(var)

说明:

       string代表的是它的值是什么类型的;

       var代表测试的变量名称;

返回值有六个:“string”、“number”、“boolean”、“undefined”、object”、“function

       有哪些数据返回的是“object”:arrayobjectnull

举例:

       var a = abc;

       document.write( typeof(a) ); //返回”string”

 

 

变量类型的转换

一、自动数据类型转换

1)其它类型转成数值

//第一种:其它类型自动转成数值

var a ="abc";              //NaN

var a = true;             //1

var a = false;            //0

var a ="100px";          //NaN

var a ="100";             //100

var a = undefined;        // NaN

var a = null;           // 0

//强制转换的函数Number()

a = Number(a);

var result = "类型是:"+typeof(a)+",值是:"+a;

document.write(result);

2)其它类型转成布尔型

//第二种:其它类型自动转成布尔型

var a ="abc";              //true

var a = 0;                  //false

var a = -100;            //true

var a ="";               //false

var a ="100";          //true

var a = undefined;      // false

var a = null;           //false

//强制转换的函数Boolean()

a = Boolean(a);

var result = "类型是:"+typeof(a)+",值是:"+a;

document.write(result);

3)其它类型转成字符串

//第三种:其它类型自动转成字符型

var a = 0;               //  "0"

var a = true;            // "true"

var a = false;           // "false"

var a = NaN;           // "NaN"

var a = 100;          // "100"

var a = undefined;     // "undefined"

var a = null;         //"null"

//强制转换的函数String()

a = String(a);

var result = "类型是:"+typeof(a)+",值是:"+a;

document.write(result);

 

 

二、强制数据类型转换

Number()强制将其它类型转成数值型;

Boolean()强制将其它类型转成布尔型;

String()强制将其它类型转成字符型;

 

三、从字符串中提取数值

parseInt(str):在字符串中,从左到右提取整数(×××),如遇到非数字数据,则停止提取;

       例如:将一个<div>的宽度增加200px

              var width = "100px";

              width= parseInt(width);  //结果为100

              width += 200;  // 300

              width = width + “px”;   //结果为 “300px”

parseFloat(str):在字符串中,从左到右提取浮点数(小数),如遇到非数字数据,则停止提取;

       parseFloat(“.3px”);       // 0.3

       paseFloat(“abc200”);      // NaN

       parseFloat(“123.09px”);   // 123.09

注意:如果要提取的字符串的第一个字符是非数字的,则直接返回NaN

 

 

算术运算符、赋值运算符、字符串运算符

3、字符串运算符:++=

       +”就是用来连接前后两个字符串,或者连接变量;

       +”如果它的前后有一个是字符串,则“+”的功能就是“连接”字符串功能;

       +”如果它的前后都是数值时,则“+”的功能就是“加法”运算的功能;

              Var a = 100;

              Var b = 100;

              Var c = a + b;  //结果是:“100100

 

              Var d = 200;

              Var result = a + d;   //结果为:300

 

       +=”如果它的前后有一个是字符串,则“+=”的功能就是“连接”功能;

       +=”如果它的前后都是数值,则“+=”的功能就是“加法”运算功能;

       1)加法运算

                     var a = 10;

                     a += 100;   //展开后是: a = a + 100

                     document.write(a);   //结果是:110

       2)字符串连接功能

                     Var a = 100;

                     a +=中国广州”;   //展开后:a = a + “中国广州

                     document.write(a );  //结果是:“ 100 中国广州”

 

4、三元运算符

语法格式:条件表达式结果1 : 结果2

说明:当条件表达式为true时,执行“结果1”的代码;如果条件表达式为false时,执行“结果2”代码。

举例:

       Var isMarried = false;

       isMarried ? “已婚” : “未婚”;  //如果isMarried的值为true,则输出“已婚”,否则,输出“未婚”

document.write(isMarried);

 

 

 

总结:

变量定义:使用关键字var来定义变量。例如:var 变量名称 = 变量的值

变量的命名:

1     可以是a-zA-Z0-9_字符;

2     不能以数字开头,可以字母或下划线开头;

3     不能用系统关键字作为变量的名称;比如:typeof  var  switchfor

变量的类型:(1)基本数据类型:数值型、字符型、布尔型、undefinednull

              2)复合数据类型:数组、对象、函数

数值型数据类型:包含整型和浮点型,还有一个NaN

字符型数据类型:常用的转义字符:\”、\’等

布尔型数据类型:有两个值truefalse

未定义型数据类型:变量定义了,但没有赋值,会返回undefined,这个类型只有一个值undefined

空对象型:当进行其它操作时,返回的对象为空时,将返回一个null的类型数据,只有一个值null

变量是存在内存中,但变量是有生存周期,当网页执行完毕后,变量的就消失了。

 JS数据类型转换

1数据类型都是自动转换,并不需要强制转换函数;

2强制转换函数,只起一个测试或检验的作用;