日期:2014-05-16  浏览次数:20369 次

js复习之-基本语法及数据类型
        //流程控制-选择语句
        var a = "123";
        switch (a) {
            case 123:
                window.document.writeln("数字");
                break;
            case "123":
                window.document.writeln("字符串");
                break;

        }
        //流程控制-循环语句
        var c = 1;
        var csum = 0;
        while (c < 101) {

            csum += c;
            c++;
        }
        window.document.writeln(csum);
        var sum = 0
        for (var i = 0; i < 101; i++) {
            sum += i;
        }
        window.document.writeln(sum);
        var x = new Array();
        x[0] = "1"; x[1] = "2"; x[2] = "3";
        //这里的i是key与C#不同foreach不同,与c#
        for (var i in x) {
            window.document.writeln(x[i]);
        }

        //流程控制-条件语句
        if (a == "123") { window.document.writeln("相等"); }
        
        
        //其它
        var b = 1 == 2 ? 1 : 2;
        window.document.writeln(b);

        //eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
        var x1 = 1;
        var x2 = 2;
        var x3 = 3;
        for (var i = 1; i < 4; i++) {
            alert(eval("x"+i));
        }


共六种:
Boolean(布尔)、Number(数字)、String(字符串)、Undefined(未定义)、Null(空对象)、Object(对象类型)
除了Object是引用类型以外,其他都是基本数据类型
Undefined类型、Null类型都是只有一个值的数据类型,分别为undefined与null.
基本类型与引用类型的区别
String也是基本类型,不能为String添加动态属性,而引用类型是可以的。
 

 

JavaScript中的null与undefined(参考资料)
undefined,表示一个未知状态
声明了但是没有初始化的该变量,变量的值是一个未知状态(undefined)。 (访问不存在的属性或对象window.xxx)
方法没有明确返回值时,返回值是一个undefined.
当对未声明的变量应用typeof运算符时,显示为undefined(*)
null表示尚未存在的对象,null是一个有特殊意义的值。可以为变量赋值为null,此时变量的值为“已知状态”(不是undefined),即null。(用来初始化变量,清除变量内容,释放内存)
undefined==null   //结果为true,但含义不同。
undefined===null //false(*),先判断类型是否一致,然后判断值。
===严格等于、!==严格不等于

 

 var x = [1, 2, 3];
 var xx = { "nam": "xhc", "age": "18" };

        alert(x instanceof (Array));
        alert(typeof (x));


对于instanceof和typeof,以前偶尔的用到过,特别是typeof用到的相对更多一些,今日研究ext源码,很多地方都用到了instanceof,突然觉得他们两个有些相似但也应该有他们区别,网上看了一些文章,对它们之间的关系有了一定的了解。

instanceof和typeof都能用来判断一个变量是否为空或是什么类型的变量。
typeof用以获取一个变量的类型,typeof一般只能返回如下几个结果:number,boolean,string,function,object,undefined。我们可以使用typeof来获取一个变量是否存在,如if(typeof a!="undefined"){},而不要去使用if(a)因为如果a不存在(未声明)则会出错,对于Array,Null等特殊对象使用typeof一律返回object,这正是typeof的局限性。

如果我们希望获取一个对象是否是数组,或判断某个变量是否是某个对象的实例则要选择使用instanceof。instanceof用于判断一个变量是否某个对象的实例,如var a=new Array();alert(a instanceof Array);会返回true,同时alert(a instanceof Object)也会返回true;这是因为Array是object的子类。再如:function test(){};var a=new test();alert(a instanceof test)会返回true。

谈到instanceof我们要多插入一个问题,就是function的arguments,我们大家也许都认为arguments是一个Array,但如果使用instaceof去测试会发现arguments不是一个Array对象,尽管看起来很像。

 

 


jS有垃圾回收机制,会定时对可释放资源的变量回收。将变量设置为null则表示可以被回收了。