JavaScript基础二 JS除错与调试、函数、对象、Array对象

一、JS除错与调试

1、除错:如果JavaScript中的代码有语法错误,浏览器会弹出报错信息,查看报错信息就能帮助排查错误。

2、JavaScript的调试,使用VS可以很方便的进行JavaScript的调试。调试时要注意以下几点“

1)IE的调试选项要打开,Internet选项->高级,去掉”禁用脚本调试"前的勾选

2)以调试的方式运行网页

3)设置断点、监视变量等操作和C#一样


二、JavaScript中判断变量、参数是否初始化的三种方法:

var x;
        if (x == null)
            alert('null');
        if (typeof (x) == 'undefined')
            alert('undefined');
        if (!x)
            alert('不x');

推荐使用最后一种方法!


三、函数的声明

不需要声明返回值类型、参数类型。函数定义以function开头。

function add(i1, i2) {
            return i1 + i2;
        }
        alert(add(1, 2));

注意:JavaScript不像其他语言一样要求有返回值,如果没有返回值,默认返回undefined


四、匿名函数

类似于C#中的匿名函数。这种匿名函数的用法在JQuery中用的非常多!

var f = function (n1, n2) {
            return n1 + n2;
        }
        alert(f(2, 3));

还可以声明时立即使用:

alert(function (n1, n2) { return n1 + n2; }(2, 4));


五、JS面向对象基础

 JavaScript中没有类的语法,面向对象是用函数闭包(closure)模拟出来的,为了理解,暂时可以用C#中类、构造函数等概念,并用“类”和对象称呼

1、“类”的声明

function Person(name, age) {
            this.Name = name;
            this.Age = age;
            this.SayHello = function(){
                alert(this.Name+','+this.Age);
            }
        }
声明一个函数,把它当类用。因为JavaScript中没有类的概念。

初始化和调用:

var p1 = new Person('Tom', 30);
        p1.SayHello();
必须要声明“类”名,function Person(name, age)也可以看做是声明构造函数,Name,Age这些属性也是使用者动态添加。

var p1 = new Person('Tom', 30);
        p1.SayHello();
        p1.Gender = '男';
        alert(p1.Gender);
函数定义时没有Gender属性,而是使用对象者自觉添加的属性,这样就可以实现动态添加属性了。


六、JavaScript中的Array对象

JavaScript中的Array对象就是数组,它是一个动态数组。是一个像C#中数组、ArrayList、Hashtable等的超强综合体。

var names = new Array();
        names[0] = 'Tom';
        names[1] = 'Jerry';
        names[2] = 'Lily';
        for (var i = 0; i < names.length; i++) {
            alert(names[i]);
        }
数组联练习题1:求数组中的最大值

定义一个函数,参数为一个数组,返回一个最大值:

function GetMax(arr) {
            var max = arr[0];
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] > max) {
                    max = arr[i];
                }
            }
            return max;
        }
初始化一个数组:

var arr1 = new Array();
        arr1[0] = 2;
        arr1[1] = 3;
        arr1[2] = 6;
        arr1[3] = 1;
调用求数组最大值函数:

alert(GetMax(arr1));


数组练习题2:不用Array数组的reverse方法,自己写一个翻转数组的函数

function MyReverse(arr){
            for (var i = 0; i < arr.length/2; i++) {
                var temp = arr[i];
                arr[i] = arr[arr.length-i-1];
                arr[arr.length-i-1]=temp;
            }
        }
初始化一个数组,调用并验证函数:

var arr = new Array();
        arr[0] = 3;
        arr[1] = 'a';
        arr[2] = 8;
        arr[3] = 'haha';
        MyReverse(arr);
        for (var i = 0; i < arr.length; i++) {
            alert(arr[i]);
        }
打印数组显示除了使用for循环逐个读出还可以直接alert打印数组。

alert(arr);

七、JavaScript中的dictionary对象(Array实现)

JS中的Array功能很全面,不仅是一个数组,还是一个Dictionary,还可以是一个Stack
Array当键值对集合Dictionary来用:

var dick = new Array();
        dick['人'] = 'ren';
        dick['手'] = 'shou';
        dick['口'] = 'kou';
        alert(dick['手']);
以上例子中Array对象dick可以设置键值对,根据key下标可以得到值。
还可以通过点来调用:

alert(dick.口);

八、Array简化的初始化

1、普通数组初始化:

var arr = [1, 3, 5, 7, 9];
这种初始化,会默认下标为:0,1,2......

2、键值对数组初始化:

var arr2 = { 'Tom': 20, 'Jim': 25 };

九、使用for循环获取系统对象的成员(而不用上网查询)

因为对象的成员,就是以对象的key形式出现的,所以通过for循环,能读取某个对象的所有成员!

//使用for循环获取对象的成员
        for (var e in document) {
            alert(e);
        }




















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值