JS 语法:
1.和css一样,可以嵌入到html的head标签当中(<script>),或者独立列出一个文件(.js <script src="file.js">)。但最好的方法是把<script>标签放到HTML文档的最后,</body>标签之前
2.程序语言分为解释型和编译型两类。编译型语言需要一个编译器,比如java和c++等语言。而解释型程序设计语言不需要编译器,他们仅需要解释器。对于javascript语言,在互联网环境下,Web浏览器负责完成有关的解释和执行工作。浏览器中的javascript解释器将直接读入源代码并执行。浏览器中如果没有解释器,JavaScript代码就无法执行。
3.如果想把多条语句放在同一行上,则必须用分号分割他们。(first statement;second statement;)
建议在每一条语句的末尾加上一个分号,这是一种良好的编程习惯
4.javascript中可以使用//或者/*来进行注释
5.不允许变量名中包含空格或者标点($除外)
6.jsp是一种弱类型的语言,这意味着程序员可以在任何阶段改变变量的数据类型(var age = “three”; age = 3;)
7.Jsp里面声明数组时可以使用 var beatles = Array("john","Paul","George","Ringo");
或者使用var years = [1940,1941,1942,1943];
8.创建对象 var lennon = Object() ;
创建对象还可以使用花括号的方法:var lennon = {name:“john”,year:1940,living:false};
9.year=year+1; year++; 两个字符串之间合二为一直接使用+号 甚至把数值和字符串拼接等等。因为JavaScript是一种弱类型语言,此时数值可以自动转换成字符串;
10.在javascript中有一个===语法,严格表示判断相等(连类型也是要完全相同),同理,有!==的符号
11.jsp里面的and是有&&这两个一起组成的
12.在jsp当中可以把函数进行封装(即定义函数),使用关键字function。如alert就是jsp当中的一个内建函数,这个函数需要我们提供一个参数,它将弹出一个对话框来显示这个参数的值。
13.作为一种好的编程习惯,在第一次对某个变量赋值时应该使用var对其作出申明。当在函数内部使用变量时,就更应该这么做。
14.如果在某个函数中使用了var,那个变量就将被视为一个局部变量,它只存在于这个函数的上下文中;反之如果没有使用var,那个变量就将被视为一个全局变量,如果脚本里已经存在一个与之同名的全局变量,这个函数会改变那个全局变量的值。
DOM
1.本节介绍节点的概念和五个常用的DOM方法:getElementById、getElementsByTagName、getElementsByClassName、getAttribute、setAttribute
2.一份文档就是一棵节点树,节点分为不同类型:元素节点,属性节点和文本节点。每个节点都是一个对象
3.getElementById返回的是一个对象,该对象对应着文档里的一个特定元素节点。
4.getElementsByTagName、getElementsByClassName返回的是一个对象数组,它们分别对应着文档里的一组特定元素节点
5.getAttribute方法不属于document对象,所以不能通过document对象调用。它只能通过元素节点调用。
6.setAttritube方法允许我们对属性节点的值做出修改。也只能用于元素节点。用sA去对文档做出修改之后,再通过浏览器的查看源代码选项器查看文档源代码时看到的仍将是改变前的属性值,也就是说sA的作用不会反映在文档本身的代码里。
7.DOM的工作模式:限价在文档的静态内容,再动态刷新,动态刷新不影响文档的静态内容。DOM的真正威力:对页面内容刷新却不需要在浏览器里刷新页面
研究案例:JavaScript图片库
1.事件处理函数 onmouseover:鼠标指针悬停在某个元素上时触发一个动作
onmouseout:在鼠标指针离开某个元素时出发一个动作
oclock:用户点击某个链接时触发一个动作
2.onclick = “showPic(this);return false;” 添加这一条语句就可以防止用户被逮到目标连接串口。
最佳时间
1.如果正确的使用了JavaScript脚本,就可以让访问者在他们的浏览器不支持JavaScript的情况下仍能顺利的浏览你的网站,这就是平稳退化。
2.javascript使用window对象的open()方法来创建新的浏览器窗口。这个方法有三个参数:window.open(url,name,features) 第二个参数是新窗口的名字。可以再代码里通过这个名字与新窗口进行通信。最后一个参数是一个以逗号分隔的字符串,其内容是新窗口的各种属性(新窗口的尺寸以及窗口被启用或者禁用的各种浏览功能(工具条、菜单条、初始显示位置,等等)。新窗口的浏览功能要少而精。)
3.javascript伪协议:让我们通过一个连接来调用javascript函数。<a href="javascript:popUp('http//www.example.com');">Example</a> 这条语句在支持"javascript:"伪协议的浏览器中正常运行,较老的浏览器则会去尝试打开那个连接但失败(用伪协议调用javascript代码做法非常不好)
4.jsp可以像css那样分离
<a href="http......" class="popup">Example</a>
在javascript里面的时候,使用一个for循环去调用class
var links = document.getElementsByTagName("a");
for(var i= 0;i<links.length;i++)
{
if(links[i].getAttribute("class")=="popup")
{
links[i].οnclick=function()
{
popUp(this.getAttribute("href"));
return false;
}
}
}
这条语句在jsp文件被加载时立刻执行。故需要一个事件处理函数:
window.οnlοad=prepareLinks;
function prepareLinks(){
var links = document.getElementsByTagName("a");
for(var i= 0;i<links.length;i++)
{
if(links[i].getAttribute("class")=="popup")
{
links[i].οnclick=function()
{
popUp(this.getAttribute("href"));
return false;
}
}
}
}
5.对象检测:只要把某个方法打包在一个if语句里,就可以根据这条if语句的条件表达式的求职结果是true还是false来决定应该采取怎么样的行动
比如 if(!getElementById) return false;