javascript基础入门

注:以下写的笔记,根据李兴华视频和廖雪峰官方文档写的。🙅感谢。

第一天

1.javascript是一种基于对象的编程语言,java属于面向对象。

  面向对象强调的是类的设计,对象的调用。基于对象指的是所有的对象已经由浏览器提供好了。用户直接使用就可以了。根本就看不见类,看见的是一个一个对象。

2.Javascript由网警公司开发。java最早由sun公司开发。java在浏览器技术端的发展主要是Applet程序。

3.JavaScript可以模拟面向对象编程,可以进行服务器端编程(即.Node.js)。

4.JavaScript的基本语法和java很相似。

5.JavaScript是嵌入在html语法之中的,可以使用<script>标记进行标注,这样就可以实现一系列的动态页面的操作效果(前台页面)。

6.使用了javascript可以在前台实现一系列华丽的操作,但是在实际工作中,javascript代码是非常多的。如果将所有的javascript程序定义在一个html界面里面会非常的难以维护。所以为了解决这样的问题,往往会单独定义一个*.js的文件,在需要的时候调用即可。

范例1)

<html>
    <head>
        <title>javascript</title>
        <meta charset="UTF-8">
        <script type="text/javascript">
            alert("给你弹框一下");
        </script>
    </head>
    <body></body>
</html>

范例2):在js目录下建立Demo.js文件
    随后在需要的地方使用src属性导入即可

html>
    <head>
        <title>javascript</title>
        <meta charset="UTF-8">
        <script type="text/javascript" src="js/Demo.js">
            
        </script>
    </head>
    <body></body>
</html>
alert("给你弹框一下");

 

基本语法:

1.javascript·的语法和java语法非常相似,除了关键字不同之外几乎没有什么区别,而且javascript的使用更加容易。

  java程序里面如果要输出使用:system.out.println()语言,在javascript里面也可以使用"document.write()"向页面输出html代码(现在已经不用了)。

<html>
    <head>
        <title>javascript</title>
        <meta charset="UTF-8">
        <script type="text/javascript">
            document.write("<h1>Hello World</h1>");
            document.write("<h1>Hello World</h1>");
            document.write("<h1>Hello World</h1>");            
        </script>
    </head>
    <body>
        <div>世界你好</div>
    </body>
</html>

    document.write()函数输出的html代码是不可控制元素顺序的,所以在开发之中是不会利用此类的函数实现内容输出的,因此使用"console.log()"实现信息的后台输出。

<html>
    <head>
        <title>javascript</title>
        <meta charset="UTF-8">
        <script type="text/javascript">
            consoe.log("控制台打开");
        </script>
    </head>
    <body>
        <div>世界你好</div>
    </body>
</html>

 2.

  1)程序的基本组成就是数据类型以及变量,javascript中变量的定义格式不是特别的严格,所有的变量只需一个var关键字定义即可。至于说变量的具体类型是根据为其赋值的结果来确定。

<script type="text/javascript">
    var num=10;
    console.log(typeof num);
</script>

  2)如果不赋值给变量,那么变量的类型就是属于未知的状态。其对应的类型就是“undefined”,可以用if语句进行判断。

<script type="text/javascript">
    var num;
    console.log(typeof num);
</script>

<html>
    <head>
        <title>javascript</title>
        <meta charset="UTF-8">
        <script type="text/javascript">
            var num;
            if(!num) {
                alert("还没有赋值");
            } else {
                alert("已经赋值了");
            }
            console.log(typeof num);
        </script>
    </head>
    <body>
        <div>世界你好</div>
    </body>
</html>

  3)从java开发而言,所有的if语句必须跟上完整的布尔表达式才可以正常执行,但在javascript里面可以直接在if语句之中使用变量直接判断,如果此变量属于undefined表示false,否则表示true
在javascript里面使用“'”或“''”表示的都是字符串,而且字符串的操作函数与java是非常类似的。

<script type="text/javascript">
    var num="Hello World ni hao";
    var result=num.split(" ");
    console.log(typeof result);
    for(var x=0;x<result.length;x++) {
        console.log(result[x]);
    }
</script>

  4)java字符串的比较有两种方式:==和equals();javascript只提供了一种操作“==”操作。

<script type="text/javascript">
    var num="wwww";
    var result = "wwww";
    alert(num==result);
</script>

  5)在javascript中数组本身是一个对象的形式出现的,所以数组的创建需要使用关键字new完成。

  范例:定义数组

<script type="text/javascript">
    var result = new Array();
    result[0]="hello";
    result[1] = 100;
    result[2]=true;
    for(var x=0;x<result.length;x++) {
        console.log(typeof result[x]);
    }
</script>

  注:javascript数组的好处就在于没有长度限制,是一个动态数组。
  数组不仅可以动态初始化也可以进行静态初始化(一般不这么使用)。
  实际上为了方便开发,在定义javascript变量的时候也可以不适用var定义,不用var定义的变量属于全局变量(这一点几乎没有用,知道即可)。

3.定义函数

  在java中如果要定义一个方法格式如下:

public protected private static final synchronized 返回值类型 方法名称(参数列表|可变参数){
    [return[返回值];]
}

   javascript    中定义函数的操作语法很容易:

function 函数名称(参数){ //此处不需要声明返回值的类型
    [return[返回值];]
}
<script type="text/javascript">
    function fun() {
        alert("返回alert");
    }
    fun();
</script>

 4.事件处理

  在页面上任何的操作都可能被成为事件源,而对每一个事件就可以进行自定义的处理方式

  例如:鼠标移动,或者是键盘按下等都可以称之为事件源

  所有的事件在javascript里面都是以“onXxx”的形式命名的,例如以下两个事件:(这两个事件只能在<body>元素里面进行处理)

  1,页面的加载事件:onload

  2,页面的卸载事件:onunload

<html>
    <head>
        <title>javascript</title>
        <meta charset="UTF-8">
        <script type="text/javascript">
            function onHandle() {
                alert("欢迎您的光临");
            }
            function unHandle() {
                alert("欢迎您下次再来");
            }
        </script>
    </head>
    <body onload="onHandle();" onunload="unHandle();">
        
    </body>
</html>

  鼠标处理事件:onmousedown(鼠标按下触发),onmouseover(鼠标进入时触发),onmouseout(鼠标移开时触发),onmouseup(鼠标弹开时触发),onmousemove(鼠标移动时触发)

  按钮上绑定事件

<html>
    <head>
        <title>javascript</title>
        <meta charset="UTF-8">
        <script type="text/javascript">
            function buttonHandle() {
                alert("欢迎您的光临");
            }
            
        </script>
    </head>
    <body >
        <button type="button" onclick="buttonHandle()">按钮</button>
    </body>
</html>

  双击按钮事件“ondbclick”事件

 

第二天

范例:做一个特效表格

1.表格的使用:table tr td th

<table>是<tr>的上层标签
<tr>必须在一个<table></table>里面,它不能单独使用,相当于<table>的属性标签.  
<table>标示一个表格,<tr>标示这个表格中间的一个行  
<td>标示行中的一个列,需要嵌套在<tr></tr>中间

具体格式是:(两行两列)  

<table>  
    <tr>  
        <td></td>  
        <td></td>  
    </tr>  
</teble>            

 

可以在table中添加属性:

border=1(表示表格线的粗细);cellpadding(表示表格单元边界与单元内容之间的间距);cellspacing(表格单元格间距);bgcolor(表示单元格的背景颜色)

 

2.以下为鼠标移动事件:

<html>
    <head>
        <title>javascript练习</title>
        <meta charset="utf-8">
        <script type="text/javascript">
            function changColor(obj,color) {
                obj.bgColor=color;
            }
        </script>
    </head>
    <body>
        <table border="1" cellpadding="5" cellspacing="0" bgcolor="#F2F2F2">
            <tr onmousemove="changColor(this,'#FFFFFF')" onmouseout="changColor(this,'#F2F2F2')">
                <td>部门编号1</td>
                <td>部门名称1</td>
                <td>部门位置1</td>
            </tr>
            <tr onmousemove="changColor(this,'#FFFFFF')" onmouseout="changColor(this,'#F2F2F2')">
                <td>10</td>
                <td>财务部</td>
                <td>上海</td>
            </tr>
            <tr onmousemove="changColor(this,'#FFFFFF')" onmouseout="changColor(this,'#F2F2F2')">
                <td>20</td>
                <td>技术部</td>
                <td>北京</td>
            </tr>
        </table>
    </body>

</html>

 

 

 第三天

1.使用addEventListener(事件类型,处理函数名称,触发时机)进行动态设置

2.对于整个javascript事件的处理分为两个过程:

  1)事件的冒泡过程

  2)事件的触发过程

  触发时机都会设置为false,表示在事件的触发过程进行处理。阻止事件的冒泡。

范例:观察动态设置

  使用“document.getElementById(元素ID)”的操作方式取得元素对象。

<html>
    <head>
        <title>javascript练习</title>
        <meta charset="utf-8">
        <script type="text/javascript">
            function handle() {
                alert("事件触发!");
            }
            //表示在界面加载的时候进行加载事件的处理
            window.onload = function() {
                var imgElement = document.getElementById("myimg");
                imgElement.addEventListener("click",handle,false);
            }
        </script>
    </head>
    <body>
        <!-- id是整个javascript的操作核心所在,必须存在-->
        <img id="myimg" src="1.jpg" height="50%">
    </body>
</html>

范例:设置图片加载

<html>
    <head>
        <title>javascript练习</title>
        <meta charset="utf-8">
        <script type="text/javascript">
            function handle() {
                document.getElementById("info").innerHTML="<img src='1.jpg' height='50%'>";
            }
            window.onload = function() {
                var butElement = document.getElementById("setBut");
                butElement.addEventListener("click",handle,false);
            }
        </script>
    </head>
    <body>
        <span id="info"></span>
        <button id="setBut">设置显示图片</button>
    </body>
</html>

范例 :设置图片浏览:

<html>
    <head>
        <title>javascript练习</title>
        <meta charset="utf-8">
        <script type="text/javascript">
            var imgName = new Array("pica.jpg","picb.jpg","picc.jpg","picd.jpg","pice.jpg","picf.jpg");
            var foot = 1;
            window.onload = function() {
                var pbut = document.getElementById("previousButton");
                var nbut = document.getElementById("nextButton");
                var img = document.getElementById("img");
                nbut.addEventListener("click",function() {
                    if(foot >= imgName.length) {
                        foot = 0;
                    }
                    img.src = "images/" + imgName[foot ++];
                },false);
                pbut.addEventListener("click",function() {
                    if(foot <= 0) {
                        foot = imgName.length - 1;
                    }
                    img.src = "images/" + imgName[foot --];
                },false);
            }
        </script>
    </head>
    <body>
        <span id="info">
            <img id="img" src="images/pica.jpg" >
        </span>
        <div id="controlDiv">
            <button id="previousButton">上一张</button>
            <button id="nextButton">下一张</button>
        </div>    

    </body>
</html>

 

第四天

1.在javascript里面提供有一个setTimeout(函数,时间-毫秒),利用此函数可以实现定期的操作调用。

2.范例:观察setTimeout()函数

<html>
    <head>
        <title>javascript练习</title>
        <meta charset="utf-8">

    </head>
    <body>
        <div id="info">hello</div>

    </body>
    <script type="text/javascript">
            function setClock() {
                var date = new Date();
                var info = document.getElementById("info");
                info.innerHTML = "<h1>当前时间:" + date + "</h1>";
                setTimeout(setClock,1000);
            }
            setClock();
        </script>
    
</html>

3.图片自动翻滚

<html>
    <head>
        <title>javascript练习</title>
        <meta charset="utf-8">

    </head>
    <body>
        <span id="info">
            <img id="img" src="images/pica.jpg">
        </span>
    </body>
    <script type="text/javascript">
        var imgName = new Array("pica.jpg","picb.jpg","picc.jpg","picd.jpg","pice.jpg","picf.jpg");
        var foot = 0;
        function setPic() {
            var img = document.getElementById("img");
            img.src = "images/" + imgName[foot ++];
            console.log(img.src);
            if(foot >= imgName.length) {
                foot = 0;
            }
            setTimeout(setPic,1000);
        }
        setPic();
    </script>
    
</html>

4.总结:

1)事件要绑定在它的触发元素上

2)静态的事件绑定方式,在元素上使用onXxx的形式

3)每一种事件都要捆绑一个函数进行事件的处理

 

表单元素的操作

范例:

<html>
    <head>
        <title>javascript</title>
        <meta charset="utf-8">
        <script type="text/javascript">
            function shoeEmail() {
                var emailElement = document.getElementById("email");

                alert("EMAIT = " + emailElement.value);
            }
        </script>
    </head>
    <body>
        <form>
            请输入email地址:<input type="text" name="email" id="email" value="">
            <button onclick="shoeEmail()">显示内容</button>
        </form>
    </body>
</html>

  在表单控件里面name和id的内容一定要保持一致

  表示根据元素的定义顺序进行向下的查询。

  在取得了输入的内容以后,更多的希望进行一下数据的验证,因为只有合法的emali才应该进行正常的显示,如果要想使用数据验证使用正则表达式是最方便的,而javascript也支持正则,但是需要记住的

是,一定要定义正则的开始与结束标记。而且所以的正则符号不再需要进行转义,语法“/^正则$/.test(要检测的数据)”。

<html>
    <head>
        <title>javascript</title>
        <meta charset="utf-8">
        <script type="text/javascript">
            function shoeEmail() {
                var emailElement = document.getElementById("email");
                if(/^\w+@\w+\.\w+$/.test(emailElement.value)) {
                    alert("数据合法");
                } else {
                    alert("数据不合法");
                }
                
            }
        </script>
    </head>
    <body>
        <form>
            请输入email地址:<input type="text" name="email" id="email" value="">
            <button onclick="shoeEmail()">显示内容</button>
        </form>
    </body>
</html>

 

 

 

posted @ 2017-12-26 14:55  野草1230  阅读(223)  评论(0编辑  收藏  举报