javascript杂记

javaScript(简称js

javascript是一种在浏览器中执行的语言,是解释型语言,无需编译就可以运行。(js是弱类型,是动态类型),javaScript中没有类的语法,是用函数闭包模拟出来的;

       好处

       这样那怕语法有错误,没有语法错误的部分还是能正确运行。

       在页面中的位置

       Javascript代码放在<script>标签中,script标签可以放到<head><body>等任意位置,而且可以有不止一个script标签。JS是大小写敏感的!

执行顺序            

放到<head>中的<script>在body加载之前就运行了,写在body中的<script>是随着页面的加载而一个个执行。

       类型

       除了可以在页面中声明javascript以为还可javascript写到单独的js文件中,然后通过<script src=”路径” type=”text/javascript”></script>引入到页面中,这样做的好处是多页面可以共享,减小网络流量。

Javascript在<a>链中的特殊用法

       <a href=”javaScript:alter(“33”)></a>。

Javascript中也是事件的概念。

javaScript中的null和underfined

       null

       null表示变量的值为空

       underfined

       underfined表示变量还没有指向任何对象,未初始化。

特性

在Js中值为0、null、underfined、或空字符串的表达式被解释为false。

javaScript中函数的定义

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

       Eg:

function add(i1, i2) {

            return i1 + i2;

        }

注意:自定义函数不要和js内置。Document内置的方法重名,否则就会把系统的方法覆盖

       匿名函数

Eg:

              Var f =function(i1,i2){

                     Return i1+i2;

}

Alter(f(1,2));

       直接声明一个匿名函数立即调用

       Eg:

              Alter(fuction(i1,i2){return i1+i2;}(10,12))

 

Javascript中如何定义一个类

Eg:

       <script type="text/javascript">

        function Ponser(name, age) {

            this.name = name;

            this.age = age;

            this.sayHoll=function(){

                alert("我叫"+this.name+"今年"+this.age+"岁");

            }

         }

         var p = new Ponser("123", 12);

         p.sayHoll();

    </script>

注意:必须要声明类名,function Person(name,age)可以看做是声明构造函数,Name、Age这些属性也是使用者动态添加了。var p1 = Person("tom", 30);//不要丢了new,否则就变成调用函数了

javaScript中的String 对象

       length、属性 取字符串长度

       charAt()方法     取第几个字符

       indexOf(“内容”) 要查的内容第一次出现的位置

lastIndexOf(“内容”) 要查的内容最后一次出现的位置

subStr(start,length)  第一个参数表示从哪个位置截,第二个参数表示截几位

substring(start,end)第一个参数表示从哪个位置截(从0开始),第二个参数表示截的那位(从1开始)

split(“按什么字符分割”)分割字符串

match replace search 的用法

eg:

 <script type="text/javascript">

        var str = "1991年12月1日,1991年12月2日"

        alert(str.match(/\d{4}/)); //返回匹配的内容

        //g表示全局匹配

        alert(str.replace(/1991/g, 2001)) //返回替换后的字符串(注意全匹配)

        //i 表示忽略大字母的大小写

        str = "ed123ABCDasdlfkadsf"

        alert(str.search(/abc/i)); //如果有匹配的返回0如果没有返回-1

   </script>

Instanceof

//instanceof用于判断前面的对象是不是后面的类型

       Eg:

              var nub = "234";

        alert(nub instanceof String)

 

 

 

 

 

JavaScript中的Array对象既可以当数字又可以当Dictionary 都是动态的

Eg

<script type="text/javascript">

        //数组()

        var nub = new Array();

        nub[1] = "tom";

        nub[2] = "jike";

        nub[3] = "lulu";

        nub[4] = "xiaoxiao";

        function sss() {

            //用for循环是e不是一个对象而是键值

            for( var e in nub) { //e表示键即1.2.3

                alert(nub[e]);

             }

         }

 

         //字典

         var dictionary = new Array();

         dictionary["tom"] = "好人";

         dictionary["jike"] = "坏人";

         dictionary["lulu"] = "坏人";

         dictionary["xiaoxiao"] = "坏人";

         function yyyy() {

             //第二种取值的方法

             alert(dictionary.lulu);

             //用for循环是e不是一个对象而是键值

             for (var e in dictionary) { //e表示键即tom、jike、lulu等

                 //第一种取值的方法

                 alert(dictionary[e]);

             }

         }

    </script> 

通过类对象Prototype(原型,蓝本)[prəutətaip]设置扩展方法

Eg:

<script type="text/javascript">

        //给String类中添加一个扩展方法

        String.prototype.addname = function(name) {

            if (!name) {

                return this

            }

            return name + this + name;

        }

        alert("12313".addname(""))

</script>

注意:方法的声明要在使用扩展方法之前执行不传值的参数值就是undefined

Json对象

Eg:

<script type="text/javascript">

        //向json赋值

        var json = {

        "classnub": "一班",

        "students":

            [

                { "name":"小花","age":15,"sex":"男"},

                {"name":"小剑","age":18,"sex":"男"},

                {"name":"祥子","age":20,"sex":"男"}

            ]

        }

        //取班级的值

        alert(json.classnub);

        //取班中的所有

        var students = json.students;

        for (var e in students) {

            alert("学生:" + students[e].name + "性别:" + students[e].sex + "今年" + students[e].age + "岁");

        }

     </script>

Dom

  Dom是html页面的模型,将每个标签都做为一个对象,javaScript通过调用Dom中的属性、方法就可以对网页中的各种元素进行编程控制。Dom就是一些让javaScript能操作HTML页面控件的类和函数

Dom和WinFrom一样,通过事件、属性、方法、进行编程。

DHTML=html+css+javaScript+Dom

       Window对象

Windom对象代表当前浏览器窗口。

注意:使用window对象的属性、方法的时候可以省略window。

Window对象中的方法

alert() 弹出消息对话框

confirm()显示“确定”,“取消”对话框 按确定返回true 按取消返回false

navigate(“href”)从新导航到指定地址;

setInterval(“方法名称()”,时间)每隔一段时间执行指定代码,第一个参数为代码的字符串,第二个参数为间隔的时间(单位为毫秒),返回值是定时器标识

clearInterval(定时器标识)取消setInterval的定时执行,因为可以指定多个定时器,所以clearInterval要指定清除哪个定时器的标识,即setInterval的返回值

eg : 

var te =setinterval(“alter(‘hell‘)”,1000);

clearInterval(te);

              setTimeout也是定时执行,但不像setInterval那样是重复定时执行,值执行一次

             egvar timeoutId = setTimeout("alert('hello')", 2000);

              clearTimeout和clearInterval用法一样

              showModalDialog(“href”) 弹出模态对话框

              showmodelessDialog(“href”)弹出非模态对话框

              window的属性

              window.location.href=”href” 重新导向新的地址,和navigate方法的效果一样

              window.location.reload()刷新页面;

window.event是非常重要的属性;用来获得发生事件时的信息,事件不局限于window对象的事件,所有元素的事件都可以通过event属性取到相关信息。

Window.event.altKey属性 返回值是bool表示发生事件时alt键是否被按下,类似的还有ctrlKey和shiftKey属性

Window.event.(clientX||clientY)发生事件时鼠标在客户区的坐标;

Window.event.(screenX||screenY)发生事件时鼠标在屏幕上的坐标;

Window.event.(offsetX||offsetY)发生事件时鼠标相对于事件源的坐标

Window.event.returnValue属性,如果将retrurnValue设置为false,就会取消触发事件的对象默认事件的处理(在超链接的onclick里禁止访问href页面)

Window.event.srcElement获得事件源对象(一般用在几个事件共享一个事件响应函数)

              clipboardData对象对粘贴板进行的操作

                     clipboardData.ClearData(“text”)清空粘贴板

                     clipboardData.getData(“text”)读取粘贴板的值,返回粘贴板中的内容;

                     clipboardData.setData(“text”)设置粘贴板的值

                     eg:自动在复制的内容后添加版权声明

                            function  modifyClipboard(){

clipboardData.setData(‘text’,clipboardData.getData(‘text’)+’版权信息’)

}

oncopy=“setTimeout(‘modifyClipboard()’,100)”

              history对象  操作历史记录

                     window.history.back()后退;

                     window.history.forward()前进

                     window.history.go(-1);

body对象的事件

       onload事件:网页加载完毕时触发(浏览器是一边下载文档,一边解析执行,可能会出现javascript执行时需要操作某个元素,这个元素还没加载,如果这样就要把操作代码放到body的onload事件中,或者可以把javascript放到元素之后。元素的onload事件是元素加载完毕式触发的,body onload才是全部加载完成

       onunload事件:网页关闭(或者离开)后触发;

       onbeforeunload:在网页准备关闭(或离开)后触发。

Eg<body onbeforeunload="window.event.returnValue='真的要放弃发帖退出吗?'">

posted @ 2011-06-12 21:48  SharonWang  阅读(237)  评论(0编辑  收藏  举报