javascript学习总结

----比特币已经升到17700/枚,一个月前本来想买一枚的,心疼自己10秒,System.out.println("呜呜呜.......")。世上本无事,庸人自扰之,继续学习,哈哈。

 

eclise 加注释的小技巧:

ctrl+/-------多个语句添加注释

ctrl+shift+c-------取消多个语句的注释

选中函数按F3-------转到函数定义或声明

javascript简介:

Javascript语言诞生主要是完成页面的数据验证。因此它运行在客户端,需要运行浏览器来解析执行JavaScript代码。

 

JS是Netscape网景公司的产品,最早取名为LiveScript;为了吸引更多java程序员。更名为javascript。

 

JS是弱类型,Java是强类型。

java的情况

类型 变量名 = 指定类型的值。

int i = 整型

 

js的情况

var 变量名 = 任意值。

这个变量的类型是由你具体赋的值来决定。而且这个变量的类型会随着赋值而发生改变。

HTML中插入javascript

1,只需要在head 标签中,或者在body标签中, 使用script 标签  来书写JavaScript代码

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
<script type="text/javascript">
            // alert是js中的一个警告框,这个警告框可以接收任意类型的数据,你给它传什么,它就弹出什么内容。
            alert("javaScript hello!");
        </script>
    </head>
    <body>03-
    </body>
</html>

2,使用Script 标签引入 单独的JavaScript代码文件 (真正的开发。一般都是使用第二种)

 

 

 

 argments

函数会创建arguments参数数组,这个数组跟形参没有多大关系,即使没有形参,在函数内部可以使用arguments参数数组的形式调用。这就说明命名的参数即形参不是必须的,只是为了提供便利。

    // 函数的参数值,除了可以通过函数定义的参数列表获取之外 。也可以通过arguments隐形参数来获取。
            // 它们相互不影响 
            function abc(a,b){
                alert(a); // 12
                alert(b); // abc
//                 arguments
                // 咱们可以把它当成为一个数组来使用
                alert(arguments.length); // 获取参数的个数
                // 获取第一个参数
                alert(arguments[0]);// 12
                // 获取第二个参数
                alert(arguments[1]);// abc
                // 获取第三个参数
                alert(arguments[2]);// true
            }
        abc(12,"abc",true);

 

函数定义

//无参函数定义
function fun(){
alert("fun函数被调用");
}

//有参函数的定义
function fun1(a,b,c){
alert(a+b+c);
}

//定义一个带有返回值的函数
function sum(num1,num2){
var num3 = num1+num2;
return num3;
}

var result = sum(100,150);
alert(result);

function形式的自定义对象

function 类名() {

this.属性名 = 值; // 定义了一个属性

this.函数名 = function(){} // 定义了一个方法

}

 

调用对象

var 变量名 = new 类名();

变量名.属性名

变量名.方法名();

 

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert title here</title>
        <script type="text/javascript">
    //         function 类名() {
    //             this.属性名 = 值; // 定义了一个属性
    //             this.函数名 = function(){} // 定义了一个方法
    //         }
            function Person(){
                this.name = "华仔";
                this.age = 18;
                this.fun = function() {
                    alert("姓名:" + this.name + ",年龄:" + this.age);
                }
            }
    
    //         调用对象
    //         var 变量名 = new 类名();
            var p = new Person();
    //         变量名.属性名
            alert(p.name);
    //         变量名.方法名();
            p.fun();
        </script>
    </head>
    <body>

 

JS中的事件

事件通常与函数配合使用,这样就可以通过发生的事件来驱动函数执行。JavaScript 使我们有能力创建动态页面。事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发JavaScript函数的事件。比方说,我们可以在用户点击某按钮时产生一个 onClick 事件来触发某个函数。

事件           当以下情况发生时,出现此事件

onload------某个页面或图像被完成加载

onclick------鼠标点击某个对象

onblur-------元素失去焦点,

常用于当输入框失去焦点之后。用于验证输入框中的信息是否合法

onchange----用户改变域的内容,常用于下拉列表中。或者文本输入框中,内容发生改变的之后触发事件。

onsubmit----提交按钮被点击,常用于当表单提交的时候。验证表单中所有表单项的值是否合法。

事件的注册又分为静态注册和动态注册两种:

静态注册事件:是在标签的事件属性上直接赋值响应的javaScript代码的形式,我们称之为静态注册

<button onclick=”alert(‘1234’)”></button>

 

动态注册事件:是指我们先获取标签对象,然后通过标签对象.事件名=function(){}的形式来给事件响应javaScript响应的代码。这种方式我们称之为动态注册

 

动态注册分为两个步骤:

1.先获取标签对象

2.通过标签对象.事件名 = function() { }

 

onload事件示例(静态注册)

<html>
<head><title>欢迎来到这个世界</title></head>
<script>
function onloadFun(){
   alert("onloadFun函数被调用啦啦!!!");
}

</script>
<body onload="onloadFun();">
</body>
</html>

onclick事件示例(动态注册)

<html>
<head><title>欢迎来到这个世界</title></head>
<script>
  
  window.onload = function(){
  var btnObj = document.getElementById("btn01");
  btnObj.onclick = function(){
      alert("这是动态绑定的单击事件");
  }  
}
</script>
<body>
</body>
<button id="btn01">动态注册</button>
</html>

onblur失去焦点事件

 

<html>
<head><title>欢迎来到这个世界</title></head>
<script type="text/javascript">
  function onblurFun(){
    alert("静态注册的失去焦点事件!");
   }
   window.onload=function(){
      var passInputObj = document.getElementById("password");
    passInputObj.onblur = function(){
         alert("这是动态绑定的失去焦点事件"); 
     }
  } 
  
  
</script>
<body>
用户名:<input type="text" onblur = "onblurFun();"><br/>
密码:<input id = "password"type = "password"><br/>
</body>
</html>

onchange事件示例

<html><!-- html开始标签,标签都是成对的,闭合的 -->
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>今晚打老虎</title>
        <script type="text/javascript">        
            window.onload = function() {                
                var selectObj = document.getElementById("select01");
                selectObj.onchange = function(){
                    alert("动态绑定的onchange事件");                    
                }
            }
        </script>
    
    </head>
    <body>
        
        请选择你心中的男神:
        <select id="select01">
            <option>--请选择你心中的男神--</option>
            <option >国哥</option>
            <option>康哥</option>
            <option>飞哥</option>
            <option>刚哥</option>
        </select>
    </body>
</html><!-- html结束标签 -->

onsubmit表单提交事件

 

<html><!-- html开始标签,标签都是成对的,闭合的 -->
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>今晚打老虎</title>
        <script type="text/javascript">
            function formInvalidate(){
                alert("开始验证所有的表单项……");
                alert("表单项有错误,用户名不合法,阻止表单提交");
                return false;
            }
        
        </script>

    
    </head>
    <body>
        
        <!-- 
            静态注册onsubmit事件
         -->
        <form action="http://127.0.0.1:8080" onsubmit="return formInvalidate();">
            用户名:<input name="username" type="text" /><input type="submit" />
        </form>

    </body>

 

DOM 模型

在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM。

大白话,就是把文档中的标签,属性,文本,转换成为对象来管理。

Document对象

HTML 文档中的每个成分都是一个节点。

HTML 文档中的所有节点组成了一个文档树(或节点树)。

可通过若干种方法来查找您希望操作的元素:

Node节点

Document对象中管理的对象。主要有三类节点对象。

节点:Node——构成HTML文档最基本的单元。

节点我们关心的主要是:

元素节点:HTML文档中的HTML标签

属性节点:标签的属性

文本节点:HTML标签中的文本内容

节点的常用属性

nodeName表示节点名

nodeType表示节点类型

nodeValue表示节点值

 

nodeName

nodeType

nodeValue

元素节点

标签名

1

null

属性节点

属性名

2

属性值

文本节点

#text

3

文本内容

                                                

 

 

 

 

 

 

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>今晚打老虎</title>
        <script type="text/javascript">
            window.onload = function(){
                var divObj = document.getElementById("div01");
                
        //        alert(divObj.nodeName);
        //        alert(divObj.nodeType);
        //        alert(divObj.nodeValue);
            
        //attribute,属性;getAttributeNode:获取属性节点的常用属性    
            var idNodeObj = divObj.getAttributeNode("id");
        //    alert(idNodeObj.nodeName);
        //    alert(idNodeObj.nodeType);
        //    alert(idNodeObj.nodeValue);
        
        //
           var textNode = divObj.firstChild;
             alert(textNode.nodeName);
             alert(textNode.nodeType);
             alert(textNode.nodeValue);
            }
        </script>
    </head>
    <body>
        <div id="div01">abc我爱你 </div>
    </body>
</html>

Document对象中的方法介绍

document.getElementById(elementId)

通过标签的id属性查找标签dom对象,elementId是标签的id属性值

 

document.getElementsByName(elementName) : 返回集合

通过标签的name属性查找标签dom对象,elementName标签的name属性值

 

这个集合的操作。跟数组一样。

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>今晚打老虎</title>
    <script>
        
        
    window.onload = function(){
        document.getElementById("btn_checkedAll").onclick = function() {
            var hobbiesObj = document.getElementsByName("hobby");
            for (var i = 0; i < hobbiesObj.length; i++) {
                hobbiesObj[i].checked = true;
            }
            
        }
    }

    //全不选
    function btn_checkedNoFun(){
                //1.先获取标签对象
                var hobbiesObj = document.getElementsByName("hobby");
//                 alert(hobbiesObj.length);
                //2.遍历每个标签对象设置checked属性值为false
                for (var i = 0; i < hobbiesObj.length; i++) {
                    hobbiesObj[i].checked = false;
                }
            }

    
    //反选
    function btn_checkedReverse(){
            // 1.获取所有的标签对象
            var hobbiesObj = document.getElementsByName("hobby");
            // 2.遍历每一个checkbox标签对象,判断checked属性值是否为true,设置checked属性为false,反之亦然。
            for (var i = 0; i < hobbiesObj.length; i++) {
                hobbiesObj[i].checked = !hobbiesObj[i].checked;
            }
        }
        
    </script>
    </head>
    <body>


                兴趣爱好:
        <input name="hobby" type="checkbox" value="h1" checked="checked"/>喝酒
        <input name="hobby" type="checkbox" value="h2"/>抽烟
        <input name="hobby" type="checkbox" value="h3"/>java<br/>
        <button id="btn_checkedAll">全选</button>
        <button onclick="btn_checkedNoFun()">全不选</button>
        <button onclick="btn_checkedReverse()">反选</button>

    </body>
</html>

 

 

document.getElementsByTagName(tagname)返回集合

通过标签名查找标签dom对象。tagname是标签名

这个集合的操作,也是跟数组一样。

 

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>今晚打老虎</title>
    <script>
        
        
    window.onload = function(){
        document.getElementById("btn_checkedAll").onclick = function() {
            var inputObjs = document.getElementsByTagName("input");
            for (var i = 0; i < inputObjs.length; i++) {
                inputObjs[i].checked = true;
            }
            
        }
    }

    
        
    </script>
    </head>
    <body>
    兴趣爱好:
    <input type="checkbox" value="h1" checked="checked"/>喝酒
    <input type="checkbox" value="h2"/>抽烟
    <input type="checkbox" value="h3"/>java<br/>
    <button id="btn_checkedAll">全选</button>
    </body>
</html>

节点的常用属性和方法

方法:

 

通过具体的元素节点调用

getElementsByTagName()

方法,获取当前节点的指定标签名孩子节点

 

appendChild(oNode)

方法给标签对象添加子节点。oNode是要添加的子节点。

 

removeChild(oNode)

removeChild方法删除子节点。oNode是要删除的孩子节点

 

cloneNode( [bCloneChildren])

cloneNode方法克隆一个对象。bCloneChildren表示是否需要克隆孩子节点

 

getAttribute(sAttributeName)

getAttribute方法获取属性值。sAttributeName是要获取的属性名

 

createElement 通过标签名创建一个标签对象

 

createTextNode 通过给定的文本内容创建一个文本节点

 

属性:

childNodes

属性,获取当前节点的所有子节点

firstChild

属性,获取当前节点的第一个子节点

lastChild

属性,获取当前节点的最后一个子节点

parentNode

属性,获取当前节点的父节点

nextSibling

属性,获取当前节点的下一个兄弟节点

previousSibling

属性,获取当前节点的上一个兄弟节点

className

用于获取或设置标签的class属性值

innerHTML

属性,表示获取/设置起始标签和结束标签中的内容(包含html标签)

innerText

属性,表示获取/设置趣标签和结束标签中的文本

 

posted @ 2017-05-26 16:40  lamsey16  阅读(237)  评论(0编辑  收藏  举报