JS入门

来源:互联网 发布:游戏源码社区 编辑:程序博客网 时间:2024/04/27 21:46

JS入门

在前端这片领域里,JavaScript是举足轻重的。JS是事件驱动且面向对象的一种脚本语言,灵活地操控HTML,CSS以及浏览器,同时实现各种编程任务,可以说前端就是JS的天下。下面我们讨论一下几个基础性问题

l        要点1:引入JS方式

这件事情看似简单,其实是很有讲究的,用哪种方式引入,在什么地方引入,绝不能随便。

引入方式:【是否需要创建函数】

[1]行内式:<p onClick="JavaScript:alert('Hello');">ClickHere</p>

[2]嵌入式:

不创建函数[页面加载时就调用]

<script language="JavaScript"type="text/JavaScript">

        alert("Hello");

</script>

创建函数[触发事件后调用]

<script language="JavaScript"type="text/JavaScript">

   function msg(){

        alert("Hello");

    }

</script>

 [3]链接式

<script language="JavaScript"type="text/javascript" src="my.js"></scritp>

 

引入位置:【页面是从上到下加载,避免操纵空节点】

放入<head>中 VS 放入<body>中

 

l        要点二:事件绑定触发的方式

事件具体如何触发,这个是看怎么方便怎么弄,都可以实现同样的功能。

[1]事件处理函数

“HTML标记事件处理程序”[即调用自定义函数,或行内书写代码]

<ponclick="alert("Hello");">Click me</p>

 

“以属性的形式出现的事件监听程序”

<scripttype="text/javascript">

       window.onload=function(){

              varop=document.getElementById("myP");

              op.onclick=function(){

                     alert("Hello");

              }

       }

</script>

<p id="myP">ClickMe</p>

 

[2]通用事件监听程序

“IE中用attachEvent()和detachEvent()”

<script type="text/javascript">

       functionmyClick1(){

              alert("Hello,Iam myClick1");

              oP.detachEvent("onclick",myClick1);

       }

       functionmyClick2(){

              alert("Hello,I am myClick2");

       }

       window.onload=function(){

              oP=document.getElementById("myP");

              oP.attachEvent("onclick",myClick1);

              oP.attachEvent("onclick",myClick2);

       }

</script>

 

“DOM中用addEventListener()和removeEventLister()”

只需要在上面例子中换掉那两个函数就可以啦

 

l        要点三:数据类型与运算符

弱数据类型,数据类型都视为对象,有一系列属性和方法,如String,number,boolean,array

简单说一下数组的创建方式:

var arr=new Array();

var Map=newArray("China","USA");

varMap=["China","USA"];

 

运算符有很多,这里介绍几个常用的

[1]判等

“==”数值是否相等

“===”数值和类型是否全等

[2] “in”判断某个属性是否存在于某个对象中

function msg(){

   var obj={title:"Name",author:"Tang"}

   alert("title" in obj);

}

[3]“instanceof”判断某个对象是否为某个类的实例

function msg(){

   var d=new Date();

   alert(d instanceof Date);

}

[4] “typeof”返回某个对象的数据类型

function msg(){

   var a="abc";

   alert(typeof a);

}

[5] “delete”删除变量或其属性,系统变量和var声明的变量不能删除

y=4;

delete y;

[6]“new”创建一个对象的实例

 

l        要点4:函数与对象

[1]函数:可重用的代码段function fName(arg1,arg2){},可见函数参数无类型,甚至可以不指定,调用时直接应用。若有返回值,直接用return即可。用arguments内置数组对象可以访问函数的参数列表,arguments.length返回其长度

[2]对象:

(1)浏览器对象BOM:window[alert()、confirm()、prompt()]、location、history、navigator、document、screen]

(2)JS内置对象:Date、Math、Array、String等

(3)自定义对象:var myObj=new Object();

 

下面对对象的几个常用方法举例:

window对象的定时操作函数

周期性执行:window.setInterval()与clearInterval()

延时后执行:window.setTimeout()与clearTimeout(),可以结合递归

<headlang="en">

    <meta charset="UTF-8">

    <title>mytest page</title>

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

 

   <style type="text/css">

       #main{

           width: 720px;

           margin: 0 auto;

           text-align: left;

           margin-top: 30px;

       }

   </style>

   <script type="text/javascript">

       function $(id){

           return document.getElementById(id);

       }

       function dispTime(){

           $("clock").innerHTML="<b>"+(newDate()).toLocaleDateString()+"</b>";

       }

       function init(){

           dispTime();

           window.setTimeout(init(),1000);

       }

   </script>

</head>

<body onload="init()">

   <div id="clock"></div>

</body>

 

用另一个函数只需要将

window.setTimeout(init(),1000);改为window.setInterval(dispTime,1000);

 

location对象的页面链接改变与回退

可回退方式用的是属性:location.href="http://www.baidu.com";

不可回退方式用方法:location.replace(http://www.baidu.com);

history主要用来控制浏览器的后退和前进,但是不能获取到URL

 

l        要点5:DOM操作

DOM模型中操作每一个节点node都有一系列属性和方法

 

访问指定节点

方式一:getElementById(),getElementsByName(),getElementsByTagName()

方式二:通过document的forms[elements属性],images等集合属性访问name,注意用下标确定具体的某一个

 

访问相关节点

通过已知节点的属性可以访问相关节点:documentElement,firstChild,lastChild,childNodes,parentNode,previousSibling,nextSibling等

 

检查节点类型

元素节点【nodeType=1】,属性节点【2】,文本节点【3】,注意属性节点和文本节点是兄弟节点,同属于元素节点的子节点

 

创建节点

常用方法:createElement(),createTextNode(),cloneNdoe()

 

操作节点

常用方法:appendChild(),insertBefore(),removeChild(),replaceChild()

实用方法:innerHTML属性

 

操作节点属性

getAttribute()【有时候用"元素名.属性名"更直接,如“myImg.src”】

setAttribute()【同上】

removeAttribute()

 

访问和修改CSS样式

通过style对象:如oP.style.color="red";【注:font-size等应写成style.fontSize等】

 

1 0
原创粉丝点击