2js中的变量的数据类型

一:js中变量的数据类型有6种:Undefined,String,Number,boolean,Object

(1)Undefined类型变量只有只一个值undefined,当定义变量的时未进行初始化,或者手动初始化为undefined,其变量的值就位undefined;

1 <script type="text/javascript">
2 
3         var ename;
4         alert(ename);//弹出undefined
5 
6         ename=undefined;
7         alert(ename);//弹出undefined
8 
9 </script>

(2)“String”类型:'a','abcd',"a","abcd”...等都是String类型;注意js中没有字符型数据,而且String类型数据既可以用单引号表示,也可以用双引号表示;

a.       typeof运算符:是用来动态判断变量的数据类型;

   使用规则:typeof   变量名

           运算结果有以下6种:"undefined","string","number","boolean","object","function";

b.  字符串数据类型又属于,字符串对象,但字符串不属于Oject类型;

c.  字符串类中的常用方法:toUpperCase()将字符串全部转化成大写,toLowerCase(),将字符串全部转化成小写,

d.  字符串类中常用属性:length,计算字符串的长度,prototype用来动态的为字符串类扩展属性或者方法;

<script type="text/javascript">

    var ename="abc";
    alert(ename);//弹出abc

    //typeof用法
    alert(typeof ename);//弹出string
    function sum(a,b){

        if((typeof a)!="number"||(typeof b)!="number"){

             alert("数据类型不正确");
             return ;

        }

        return a+b 

    }
    
    sum();//弹出"数据类型不正确"
    alert(sum(1,2));//弹出3

     //substr(起始下标,截取长度),用来截取字符串;substring(起始下标,结束下标);用来截取字符串,包括起始位置,不包括结束位置
     alert("abcdef".substr(1,2));//bc
     alert("abcdef".substring(1,2))//b


      


</script>

(3)第三种数据类型:Number:包括1,2,3,1.0,NaN,Infinity...等

a.       NaN表计算结果本因该是一个Number类型,但是实际上计算结果不是Number类型,结果就为NaN;

          NaN意思为:Not a Number,不是一个数字,但是他是Number类型的数据;

          isNaN(变量);该函数是用来判断一个数据是否是NaN,若是则返回true,若不是则返回false;

b.       Infinity表示无穷大,当分母为零的时候,结果肯定为Infinity;

c.       paeseInt();表示将字符串类型数据转化为Number类型,结果保留数据的整数位;

d.       perseFloat();表示将字符串类型数据转化为Number类型,结果保留小数为;

 1 <script type="text/javascript">
 2 
 3         //3.第三种数据类型:Number
 4         //1,2,3,1.0,NaN,infinity
 5         var i=1;
 6         alert("变量的数据类型是:"+typeof i);
 7         
 8         i=NaN;
 9         alert("i变量的数据类型是:"+typeof i);
10         
11         i=Infinity;
12         alert("变量i的数据类型为:"+typeof i);
13         
14         //当计算结果应为数字,但是实际上计算机过不是数字的时候,结果就是NaN;
15         //NaN表示Not a Number,不是一个数字,但是死NaN本身是一种数据类型
16         
17         var a;
18         var b;
19         var c=a+b;
20         alert(c);//NaN
21         
22         var d="abc";
23         var e=10;
24         alert(d/e);//NaN
25         
26         //重要的函数:isNaN(数据),函数执行的结果为:true/false;该函数的作用是判断是一个数据是否是一个数字,若是数字返回true,若不是数字返回false
27         alert(isNaN(d/e));//true
28         alert(isNaN(10/2));//false
29         
30         //什么时候使用Infinity?Infinitity表示无穷大,当除数是0的时候,结果一定是Infinitity
31         var retValue=10/0;
32         alert(retValue);//Infinitity
33         
34         alert(10/3);
35         
36         //parseInt(数据)函数,将字符串类型的数据转化为"int"类型的数据,只保留整数位        
37         var price="100";
38         price=parseInt(100);
39         alert(price+1);//101
40         
41         price="3.14";
42         price=parseInt(price);
43         alert(price+1);//4
44         
45         //parseFloat(数据)可以将非数字转换成数字,保留小数位
46         price="3.95";
47         price=parseFloat(price);
48         alert(price);//3.95
49 
50 </script>

(4)Boolean类型数据:只有两个值:true/false

(5)Object类型的数据:所有自定义类都是Object类的子类;

a.  自定义类的第一种方式:        function 类名(参数列表){

                  this.属性名称;        

                                                                 this.方法名称=function(参数列表){

                    方法体;

                  }

                                                          }

b.  自定义类的第二种方式:  类名=function(参数列表){

                  this.属性名;

                                                                 this.方法名=function(参数列表){

                    方法体;

                                                                 }

                }

 1 <script type="text/javascript">
 2         //5.第五种数据类型:object
 3         
 4         var obj=new Object();
 5         alert(typeof obj);
 6         
 7         //js中所有的自定义类都是Object类的子类
 8         //定义类的第一种方式
 9         function Person(name,age){
10         
11             //类的属性
12             this.name=name;
13             this.age=age;
14             
15             //类的方法
16             this.work=function(){
17             
18                 alert(this.name+"is wotking");
19             
20             }
21         }
22         
23         //创建Person类
24         var per=new Person("徐志远",20);
25         per.work();
26         
27         //可以使用prototype属性为Person类扩展方法
28         Person.prototype.eat=function(){
29         
30             alert(this.name+"is eating");
31         
32         }
33         
34         per.eat();
35         
36         //定义类的第二种方式
37         Employee=function(name,age){
38         
39             //Emploee类的属性
40             this.name=name;
41             this.age=age;
42             
43             //Emploee的方法
44             this.introduce=function(){
45             
46                 alert("My name is"+this.name+"My age is"+this.age);
47             
48             }
49         
50         }
51         
52         //创建Emploee类
53         var emp=new Employee("张鑫",19);
54         emp.introduce();
55 
56 </script>
原文地址:https://www.cnblogs.com/xuzhiyuan/p/7851475.html