js02 变量数据类型

变量
JavaScript 是一种弱类型的脚本语言
var c = 3;即变量的声明(变量使用之前必须加var声明,编程规范)
变量的命名规则!
1.变量命名必须以字母或是下标符号”_”或者”$”为开头。
2.变量名长度不能超过255个字符。
3.变量名中不允许使用空格。
4.不用使用脚本语言中保留的关键字及保留符号作为变量名。
5.变量名区分大小写。(javascript是区分大小写的语言)
全局变量
在方法外部声明的变量
方法内部,没有加var关键字声明的变量
局部变量
方法内部,使用var声明的变量,出了方法就不行了


ECMAScript中,数据类型也分为基本类型和引用类型两大类.
基本数据类型:Number、Boolean、String、Undefined、Null
Number:整数和小数(最高精度17位小数)、NaN、Infinity, -Infinity (正负无穷)
    注意:
1.除10进制外,还可通过8进制和16进制的字面值来表示,如 070 表示56、0xA表示10.
2.小数为浮点类型,if(a+b == 0.3) //不要做这样的测试,因为     浮点数值最高精度是17位,而是0.300000000000000004.
Undefined:表示变量声明但未赋值.
Null:表示一个空的对象引用(也就是赋值为null)
引用类型:Object类型 (比如对象、数组、RegExp、Date...)
Typeof 操作符
基本类型和引用类型的值
基本类型是按照值访问的,因为可以操作保存在变量中的实际值
引用类型则是按地址去访问的
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
        <script type=text/javascript charset=utf-8>            
        //关于全局变量和局部变量的简单说明             
        var a = 3;//number(代表int,float,double),方法外部var是全局变量 
        //变量一共有两种: 全局变量 局部变量
        function test(){
            var a = 2 ;     //方法内部var局部变量
            var b = 2 ;        //方法内部var局部变量
            c = 5 ;            //全局变量,不加修饰符的变量用的少
            alert(a);       //2
        }
        test();//当成函数看,基础部分都当成函数看,
        alert(c);//5,test()方法要先执行否则undefined
        alert(b);//undefined
        
        //javascript是弱类型变量的脚本语言 ,根据赋值决定变量的类型 
        // Number类型 整数和小数
        var a1 = 10 ; 
        var a2 = 10.5 ;
        var a3 = NaN;         //not a number
        var a4 = 1/0 ;        //正无穷
        var a5 = 070;        //8进制 和16进制(0xA)
        alert(a4);//Infinity正无穷
        alert(a5);//56
        var a6 = 0.1 ; 
        var a7 = 0.2 ;
        if(a6+ a7 == 0.3){//a6+a7 = 0.30000000000000004
            alert('等于0.3');
        } else {
            alert('不等于0.3');//走这里
        }
        
        var a8 = parseInt("aaabbcc"); //不是一个数
        alert(a8);//NaN,转换不了数字,就说not a number
        var a9 = parseInt("12bbcc");
        alert(a9);//12
        
        //undefined 数据类型 他的值就是undefined 表示变量声明了,但是没有被赋值
        var b1  ;
        alert(b1);//undefined
        
        //Null 空值
        var b2 =  null ;
        alert(b2);//null
        
        //String ,js里面单引号双引号不区分
        var str1 = "我是字符串1";
        var str2 = '我是字符串2';
        
        // Boolean 
        var flag1 = false ; 
        var flag2 = true ; 
        
        // 引用数据类型
        var arr = [1,2,3];        //数组类型
        var dates = new Date();    //日期类型
        var obj = {};            //空对象    
        
        // typeof 操作符  用来判断数据类型的    
        var a = 10 ;
        var b = 10.3 ; 
        var c = true ; 
        var d = 'abcd';
        var e = new Date();//object
        var f = NaN ;//number,
        var g = [1,2,3];//object
        var h = undefined ; //undefined类型
        var i = null;        //object类型,表示一个空对象的引用{}
        alert(typeof i);
        </script>
    </head>
    <body>
    </body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
        <script type=text/javascript charset=utf-8 >
        var a1 = 10 ; 
        var a2 = 10.0 ;
        if(a1 == a2){
            alert('相等');//走这里
        }
        if(a1 === a2){//都是number类型
            alert('222222');//走这里
        }
        //js数据自动转换的机制 
        var a = "1" ;         //非空字符串是true
        var b = true ;         //boolean
        // == 表示 可以经过自动转换 转成相同的类型再比较数值 
        // === 表示 可以经过自动转换 先比较值, 再比较数据类型
        if(a == b){
            alert('相等');//走这里
        } else {
            alert('不等');
        }
        if(a === b){
            alert('相等');
        } else {
            alert('不等');//走这里
        }
        
        //三目运算符:
        var c = 10/2>4?5:3;
        alert(c);//5
        
        //关于for循环的特点:
        for(var i =0 ;i <5 ; i++){//用var不用int,
            alert(i);
        }
        </script>
    </head>
    <body>
    </body>
</html>
原文地址:https://www.cnblogs.com/yaowen/p/6858635.html