JavaScript

 

 

 

 

 

 

JavaScript_1:============

动态网页技术

                        ---> 服务端技术

                        ---> 客户端技术

javascript 基于解释性的语言

  动态网页:

    服务器端动态

 客户端动态

减少服务器压力

                                    功能受浏览器控制 需要看浏览器支持什么

========= 词法特性 =================

采用unicode字符集,但是仅限于注释和字符串变量值, 变量和函数的标识符不能使用

Unicode字符集。

基本特征 :

    变量没有数据类型 。

    JAVA:

       int a = 123;

       String b = "123";

    Javascript :

       var a = 123;

       var b = "123";

    基本程序控制和java一样。

==============================================

数据类型和值 :

            弱数据类型 设计的比较简单 随着功能愈加强大 已经成为了一个缺陷

      在程序中,变量的值可以是 :

      三种基本数据类型 :

      数字: 123, 123.22

      文本字符串: "zhongguo" ,"中国", '123' 

      boolean类型: true | false  

                             非0 和  0    非null| null

     

      除基本数据类型以外, javascript 还支持复合类型 :

      Object( 对象 ) , Array( 数组 )

     boolean :

    boolean 的其他表示方法 :

                1 , 0 和 非0 值 。

                2, 空 和非空 。

      特殊数据类型:null 和 undefine (未定义的).

javascript 是 弱数据类型的语言,其变量没有数据类型。

所有变量声明时都使用 var 类型 。 而且统一变量可分别

存储不同类型的值

 

var a = 123;

a = "123";   

var a = 1;

var b = "2";

var c = a + b ;    "12"

 

 

javascript代码引入到Html

1,代码直接嵌入

<script language="javascript">

    ......

    ......

</script>

 

2, 引入外部文件

<script type="text/javascript" src="js/functions.js"></script>

<link rel="stylesheet" type="text/css" href="*.css">

 

javascript简单交互手段

alert( "" );

document.write( "" ) ;

只有function里才算局部变量

If、for里都不算

    创建并使用对象 。

    1,

    var obj = new Object();

   obj.name = "zhangsan" ;

   obj.age =123 ;

   obj.email = "liucy@cernet.com" ;

 

属性的两种访问方式:

   alert( obj.name ) ;

   alert( obj["name"] ) ;

            本质:多个属性的集合

            缺点:不严谨

    var  obj = { name : "zhangsan" , age : 24 , email : "liucy@cernet.com" } ;

   alert( obj.gender ) ;

 

for循环

   第一种

for (i = 0; i <= 5; i++)

{

document.write(i)

document.write("<br>")

}

  第二种使用 for...in 循环语句

for...in 循环中的循环计数器是一个字符串,而不是数字。它包含了当前属性的名称或者表示当前数组元素的下标。

<script type="text/javascript">

// 创建一个对象 myObject 以及三个属性 sitename, siteurl, sitecontent。

var myObject = new Object();

myObject.sitename = "布啦布啦";

myObject.siteurl = "blabla.cn";

myObject.sitecontent = "网页教程代码图库的中文站点";

//遍历对象的所有属性

for (prop in myObject)    prop是数组元素的下标和java

{                      foreach有不同的含义

document.write("属性 '" + prop + "' 为 " + myObject[prop]);

document.write("<br>");

}

 

 

 

创建并使用数组

     1,

     var arr = new Array();

     var[0] = 1 ;

     var[1] = 3 ;

     2,

     var arr = [ 1,2,3,4,5,6 ] ;

     3,

     var arr = [ 1,,,,6] ;

     4,

     var arr = [ 1, 4.4, "sd" , true]  类似一个集合

不需要指定数组长度

使用变量 :

    变量需要先声明,后使用 。

    未付值的变量初始值是undefine .

   重复声明 :

      使用 var 重复声明是合法的. 如果重复声明中有初始值的话, 则相当于付值

      语句 , 没有初始值的话,变量保留以前的值 .

  遗漏声明 :

     如果使用了一个未声明的变量 , javascript会对这个变量作隐式声明。

      但是所有隐式声明的变量,都会成为全局变量,即使声明是发生在函数体

       之内的 。

函数声明和使用 :

    function name( a , b , c ) {}

   支持内联函数 :

  function a(){

            function b();

            b();

  }

  内联函数只能在作用域内使用

  变量作用域 :

      javascript中不存在块作用域 , 声明在块中的变量,在块的外面一样可以使用

   if(){

              var a = 10 ;

       }

   alert( a ) ; //合法 。

   作为数据的函数 :

         function a( x, y ){  .... }

         var b = a ;//用变量存函数;

         b( 1 , 2 ) ;//相当于a(1,2);

思考:

            var student = new Object();

            student.name = "zhangsan";

 

   通过构造函数创建函数

   var a = new Function( "a" , "b" , "return a + b " );

  a , b , 新建对象的参数名称 , 如果有多个可以依次填入 :

   new Function( "a" , "b" , "c" , ... " return a + b + ... + n ; " ) ;

      调用 : a( 10 , 20 ) ;

   通过函数直接量:

       var a = function ( x , y ){ return x + y ; }

    参数数量验证:arguments.length

    变量作用域:

            不存在块作用域 注意 这里所说的块 并不是函数块

window.parent

JavaScript_2:==================

javascript中的常见事件

    一般性事件

          onclick            单击事件

          ondblclick      双击事件

          onmouseomove    鼠标移动

          onmouseover     鼠标移入

          onmouseout      鼠标移出

          onmousedown   鼠标键按下

          onmouseup       鼠标键松开

         适用 几乎全部的可显示元素(标签) 。

   页面相关事件

         onload   :   页面加载时触发。即把页面所有的东西都下载完时触发                 <body>

         onscroll :   页面滚动时触发。                              <body>

         onstop   :   按下stop按钮时触发。                  <body>

         onresize :   调整大小时触发 。                             <body>

         onmove   :   窗口移动时触发。                         <body>

   表单相关事件

        onblur   : 当前元素失去焦点时触发。 <input>

        onchange : 当前元素失去焦点,并且值发生变化时触发。<input>

        onfocus  : 当前元素获得焦点时触发,指光标移到当前处,即获得焦点 。  <input>

        onsubmit : 表单被提交时触发  <form οnsubmit=”return tes()”>

==============================================

DOM : W3C提供的一组规范 可以在独立于平台的前提下修改文档的内容和结构。

DOM  将文档的内容封装到对象及对象的属性和关系中 。

通过操作DOM对象及对象的属性,达到修改文档内容及结构的目的 。

DOM里有各种方法,用于修改文档内容和结构;

可以将DOM理解为文档内容的树状表示法 。

<table>

   <tbody>

       <tr><td>zhangsan</td><td>20</td></tr>

       <tr><td>lisi</td><td>21</td></tr>

   </tbody>

</table>         

用于遍历XML文档的DOM方法:

    document.getElementById( "" )       XMLElement

    document.getElementsByTagName( "name" )    array

用于处理XML文档的DOM属性 :

     childNodes      Array      //返回的是一个数组

     firstChild       XMLElement     //第一个子标签

     lastChild           XMLElement                     //最后一个子标签

     nextSibling       XMLElement  //同级的下一个标签

     previousSibling   XMLElement //同级的上一个标签

     parentNode      XMLElement   //直接父标签

通过 "." 访问element属性 。

    document对象为DOM的内置对象,代表XML文档的根

    在HTML文件中可以理解为body标签 。

    document.createElement( "div" ) ;

    document.createTextNode( "text" ) ; 创建文本

var txtA = document.createTextNode("hello");   //创建文本内容

var colA = document.createElement("td");  //创建标记

colA.appendChild(txtA);    //添加子标记

     element.getAttribute( Name ) ;

     element.setAttribute( "name" , value ) ;

     element.appendChild() 

     element.insertBefore( newNode , targetNode ) ;

     element.removeAttribute( node )

     element.removeChild( node ) ;

     element.replaceChild( newNode , oldNode ) ;      //用newNode替换oldNode

     element.hasChildnodes()

浏览器差异。

    1) table 和 tbody

2) 设置属性   ff      element.setAttribute( "name" , "value" ) ; 

                                  ie      element.name = value

3

设置css   ff   element.setAttribute("style","color:blue" ) ;

              ie              element.style.cssText = "color:blue" ;

              ff               element.setAttribute("class","xxx" ) ;

              ie              element.className ;

 

1 变量没有数据类型 ---> 值有

                        基本数据类型 :

                                    数字 | 字符串 | boolean

                                                                                              |-  0,非0 | null 和非null

                        复合类型:

                        数组(没有固定长度,可以装任何类型的值)

                        对象(只有属性没有方法)

2 变量可以重复声明

3 变量如果没有经过声明,系统会自动对其做隐式声明(作为全局变量)

4 function 函数名(a, b){}

5 通过构造方法创建函数: var fun = new Function("");

            通过函数直接量创建函数: var fun = function(){}

6 作为变量函数

            var fun;

            function testFun(a, b){

                         return a+b;

            }                                         

            fun = testFun; 

            fun(1,2);  

7 事件句柄:onclick……

8 DOM ---> getElementById

                 getElementsByTagName

 

 

 

9各种表单验证=====================

1) 两次输入密码是否相同

<FORM METHOD=POST ACTION="">

<input type="password" id="input1">

<input type="password" id="input2">

<input type="button" value="test" οnclick="check()">

</FORM>

<script>

 

function check(){

with(document.all){

if(input1.value!=input2.value) {

alert("false")

input1.value = "";

input2.value = "";

}

else document.forms[0].submit();

}}

</script>

 

2)6. 验证油箱格式

<SCRIPT LANGUAGE=javascript RUNAT=Server>

function isEmail(strEmail) {

if(strEmail.search(/^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/) != -1)

return true;

else alert("oh");

}

</SCRIPT>

<input type=text οnblur=isEmail(this.value)>

 

3)表单项不能为空

<script language="javascript">

function CheckForm(){

if (document.form.name.value.length == 0) {

alert("请输入您姓名!");

document.form.name.focus();

return false;

}

return true;

}

</script>

 

4) 比较两个表单项的值是否相同(密码比较)

<script language="javascript">

function CheckForm()

if (document.form.PWD.value != document.form.PWD_Again.value) {

alert("您两次输入的密码不一样!请重新输入.");

document.ADDUser.PWD.focus();

return false;

}

return true;

}

</script>

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值