黑马程序员-javascript基础知识学习笔记

时间:2022-12-08 21:20:32

<a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IO开发S</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流!

一、Javascript:基本概述

        是Netscape公司语言,基于对象和事件驱动。

        和java的不同之处:

        1、所属公司不一样。java是sun公司,现在是Orcale公司。

        2、js是基于对象,java是面向对象。

        3、js是由浏览器解释并执行,java是由jvm解释并执行。

        4、js是弱类型的语言,java是强类型。

        5、js是非严谨的,java是严谨的。

        javascript运行在客户端。

       

        javascript需要被浏览器所解释执行,就必须将代码和html相结合。

        结合方式是什么样的呢?

        1、通过定义<script>标签将js代码存入其中。并指定type属性。方便浏览器启动指定的解析引擎。

        2、也可以通过<script>标签,使用src属性连接一个指定的js文件进来。

<script src=”hello.js” type=”text/javascript”></script>

        3、直接在HTML标签中使用:

<input name=”but”type=”button” value=”弹出消息框” onclick=”javascript:alert(‘欢迎你’);/>

二、Javascript的基本语法:

        1、变量:

                显示定义:通过var关键字定义变量,该变量可以赋予不同类型的常量。

                var x=3;

                x="abc";

                特殊的常量:undefined

                隐式定义:直接给变量赋值

                a="Hello javascript"               

        2、语句:

                if,switch,while,do  while,for

                使用逻辑运算符进行布尔表达式连接的时候,需要时短路与和短路或。&& ||

                因为在js中,非0即为true,0为false。非null为true,null为false。

                js特有的语句:

                with(对象){}:可以确定对象所使用的范围。在范围内,可以直接使用对象的

                属性和行为,而不用"对象."的形式调用。简化了对象的操作。

                for(变量 in 对象):可以对对象的属性及行为进行遍历。

        3、数组:

            对于js数组的特点在于:该数组的长度是可变的,相当于java中的集合。

            该数组中可以存放的元素类型是可以不同的。

            定义格式:

                var arr = [3,true,"abc"];

                var arr = new Array();

                var arr = [[3,1,9],[3,4]]

            操作形式和java一样。都是通过for进行遍历,同时也使用了指针的思想。

        4、函数。

            通过function关键字定义函数。

            a,一般函数。

                格式:function 函数名(形式参数...)

                    {

                        执行语句;

                        return 返回值;

                    }

                通常为了提高代码的复用性可以将代码封装成函数。

                两个明确:

                    1,明确该功能实现后的结果。

                    2,该功能在实现过程中是否有未知内容参与运算。

            b,动态函数。(使用Function类匿名函数)

                使用的是Function对象。

                var show = new Function("x","y","return x+y;");

                动态函数的特点:可以将参数列表,和方法体作为参数传递。其中最后一个字符串参数是函数的执行体,执行体的各语句以分号(;)隔开,前面的各字符串则是函数的参数;

            c,匿名函数。

                一般函数的简写形式。

                function(){}

                匿名函数通常可以用于事件的处理。

                如:

                window.onload = function(){alert('onlaod over');}

 

            在函数使用时需要注意的部分:

            function show()

            {

                return "show run";

            }

            var method = show();

            var method = show;

            两句代码都是正确的,

            第一句表示的是show方法运行后的结果赋值给method变量。

            第二句表示的是将show指向的对象的地址赋值给method。那么method

            也指向了该对象。那么就可以通过method();的形式来调用这个show()方法。

        --------------------

三、javascript中的对象

    注意:在定义javascript函数时,也就得到了一个同名的类,而且该函数就是该类的构造器。因此我们认为定义一个函数的同时,实质上也是定义了一个构造器(构造函数)。

        js可以通过对象形式将数据进行封装。

        首先对对象进行描述,通过函数来完成。

        function Person(name,age)

        {

            this.name = name;

            this.age = age;

        }

        var p = new Person("lisi",30);

        alert(p["name"]+"..."+p.age);

        p.show = function()

        {

            alert("show run");

        }

-----------------

        Javascript中的已定义好的一些对象。

        1,String,Math,Date,Array,Function

        这些对象都有一个属性叫做prototype原型。

        prototype可以获取指定的对象引用

        可以通过该引用给已有的对象赋予一些新的功能。

        那么在使用该对象时,可以直接调用定义好的新功能。

 

        function getMax()

        {

            var max = 0;

            for(var x=1;x<this.length;x++)

            {

                if(this[x]>this[max])

                    max=x;

            }

            return this[max];

        }

        var arr = [3,4,16,7];

        arr.sort();//直接调用Array对象的sort方法对数组进行排序。

        那么可不可以像调用sort方法一样调用getMax方法呢?

        就需要将getMax方法添加到Array对象当中。

        Array.prototype.getMax = getMax;

        var x = arr.getMax();

        alert("max="+x);

 

 

        var str = "abc";

        str.substring(1,2);

        str.bold();//<b>str</b>

        /*//模拟一下String中的fontcolor方法

        function mycolor(color)

        {

            return "<font color='"+color+"'>"+this+"</font>"

           

        }

        String.prototype.color = mycolor;

        str.color("red");

        */

        //给字符串对象定义个新功能,去掉字符串两端的空格。

        function trim()

        {

            var start,end;

            start = 0;

            end = this.length-1;

            while(start<=end && this.charAt(start)==" ")

                start++;

            while(start<=end && this.charAt(end)==" ")

                end--;

            return this.substring(start,end+1);

        }

        String.prototype.trim = trim;

        var s = "    ab  c   ";

        var s = s.trim();

        alert("---"+s+"--");//ab c

        -----------------------------------------

        常见的全局方法。

        parseInt(number,[radix])://将数字格式的字符串转成整数。如果指定了基数,

        那么numstr,就会按照指定的基数进行转换。

        var num = parseInt("110",2);//表示"110"这个字符串会按照二进制进行转换。

        var x = 6;

        alert(x.toString(2));//110//获取6的对应的二进制表现形式。

<a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

详细请查看:<ahref="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>