不适合人类阅读的学习笔记
基础
建议把javascript脚本放在
<body>
部分的底部。
这会提高网页加载速度,因为 HTML 加载不受制于脚本加载。
嵌入html的javascript写法
- JavaScript代码写在
<script>
和</script>
标签之前。 - 其中
<script type ="text/javascript">
表示在<script></script>
之间的是文本类型(text)
,javascript是为了告诉浏览器里面的文本是属于JavaScript语言。
单独写成文件
JavaScript代码只能写在HTML文件中吗?当然不是,我们可以把HTML文件和JS代码分开,并单独创建一个JavaScript文件(简称JS文件),其文件后缀通常为.js,然后将JS代码直接写在JS文件中。
注意:在JS文件中,不需要
<script>
标签,直接编写JavaScript代码就可以了。单独写成文件的javascript文件不能单独运行,比如一个叫“script.js”的文件,我们需在HTML中添加如下代码,就可将JS文件嵌入HTML文件中:
<script src="script.js"></script>
位置
- 我们可以将JavaScript代码放在html文件中任何位置,但是我们一般放在网页的head或者body部分。
放在<head>
部分
- 最常用的方式是在页面中head部分放置
<script>
元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分。
放在<body>
部分
JavaScript代码在网页读取到该语句的时候就会执行。
注意: javascript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时是按先后顺序的,所以前面的script就先被执行。比如进行页面显示初始化的js必须放在head里面,因为初始化都要求提前进行(如给页面body设置css等);而如果是通过事件调用执行的function那么对位置没什么要求的。
语法
一个JavaScript语句以
;
结尾(虽然也可以不写)注释:单行注释:
//
,多行注释/*...*/
变量
定义变量使用关键字
var 变量名
注意JS中变量无需声明类型
判断语句
语法:
1
2
3
4if(条件)
{ 条件成立时执行的代码 }
else
{ 条件不成立时执行的代码 }例子:
1 | <script type="text/javascript"> |
判断函数
语法:
1
2
3
4function 函数名()
{
函数代码;
}例子:
输出内容(document.write)
输出内容可以是双引号括起来的,也可以是变量,多个输出项之间以
+
连接例子:
1 | <script type="text/javascript"> |
javascript警告(消息对话框)
- 语法:
alert(字符串或变量)
注意:alert弹出一个消息对话框,只有一个确定按钮,多个对话框之间按顺序弹出。
确认(confirm对话框)
语法:
confirm(str);
参数说明:
- str:在消息对话框中要显示的文本
- 返回值: Boolean值
- 返回值:
当用户点击”确定”按钮时,返回true ;当用户点击”取消”按钮时,返回false
打开新窗口(window.open)
语法:
window.open([URL], [窗口名称], [参数字符串])
参数说明:
1
2
3
4
5
6
7
8
9
10URL:可选参数,在窗口中要显示网页的网址或路径。如果省略这个参数,或者它的值是空字符串,那么窗口就不显示任何文档。
窗口名称:可选参数,被打开窗口的名称。
1.该名称由字母、数字和下划线字符组成。
2."_top"、"_blank"、"_self"具有特殊意义的名称。
_blank:在新窗口显示目标网页
_self:在当前窗口显示目标网页
_top:框架网页中在上部窗口中显示目标网页
3.相同 name 的窗口只能创建一个,要想创建多个窗口则 name 不能相同。
4.name 不能包含有空格。
参数字符串:可选参数,设置窗口参数,各参数用逗号隔开。
注意:所有的参数都要写在一个参数字符串中,中间以逗号间隔,例如 ‘height=100.width=100’ 这样。
可以将窗口对象存储在变量test中:
var test = window.open(...);
关闭窗口:
window.close();
:关闭本窗口<窗口对象>.close();
:关闭指定窗口
控制权(DOM操作)
文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。DOM 将HTML文档呈现为带有元素、属性和文本的树结构(节点树)。
将HTML代码分解为DOM节点层次图:
HTML文档可以说由节点构成的集合,三种常见的DOM节点:
元素节点:上图中
<html>
、<body>
、<p>
等都是元素节点,即标签。文本节点:向用户展示的内容,如
<li>...</li>
中的JavaScript、DOM、CSS等文本。属性节点:元素属性,如
<a>
标签的链接属性href="http://www.imooc.com"
。例子:
<a href="http://www.imooc.com">JavaScript DOM</a>
通过ID获取元素
网页由标签将信息组织起来,而标签的id属性值是唯一的,就像是每人有一个身份证号一样,只要通过身份证号就可以找到相对应的人。那么在网页中,我们通过id先找到标签,然后进行操作。
语法:
document.getElementById(“id”)
例子:
1 | <!DOCTYPE HTML> |
innerHTML属性
innerHTML 属性用于获取或替换 HTML 元素的内容。
语法:
Object.innerHTML
例子:
1 | <!DOCTYPE HTML> |
改变HTML样式
HTML DOM 允许 JavaScript 改变 HTML 元素的样式。
语法:
Object.style.property=new style;
注意:Object是获取的元素对象,如通过
document.getElementById("id")
获取的元素。基本属性表:
属性 | 描述 |
---|---|
backgroundColor | 设置元素背景颜色 |
height | 设置元素高度 |
width | 设置元素宽度 |
color | 设置文本颜色 |
font | 在一行设置所有的字体属性 |
fontFamily | 设置元素的字体系列 |
fontSize | 设置元素的字体大小 |
… | … |
CSS的其他的一些样式也可以通过该方法修改
例子:改变
<p>
元素的样式,将颜色改为红色,字号改为20,背景颜色改为蓝:
1 | <p id="pcon">Hello World!</p> |
显示和隐藏
网页中经常会看到显示和隐藏的效果,可通过display属性来设置。
语法:
Object.style.display = value
注意这里的Object也是元素对象,可通过document.getElementById(“id”)来获取
- value取值:
- none:此元素讲不会被显示(即隐藏)
- block:此元素将显示为块级元素
例子:
控制类名
className 属性设置或返回元素的class 属性。
语法:
object.className = classname
作用:
- 获取元素的class属性
- 为网页内某个元素指定一个CSS样式来更改该元素的外观
- 例子:
1 | <!DOCTYPE HTML> |
- 结果:
进阶
- 循环、分支、判断等语法与C++一致
事件响应
- JavaScript 创建动态页面。事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。
事件 | 说明 |
---|---|
onclick | 鼠标单击事件 |
onmouseover | 鼠标经过事件 |
onmouseout | 鼠标移开事件 |
onchange | 文本框内容改变事件 |
onselect | 文本框内容被选中事件 |
onfocus | 光标聚集 |
onblur | 光标移开 |
onload | 网页导入 |
onunload | 关闭网页 |
鼠标单击事件
onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件。同时onclick事件调用的程序块就会被执行,通常与按钮一起使用。
例如:单击按钮时出发onclick事件,调用add2()函数
1 | <form> |
鼠标经过事件
- 与鼠标单击事件调用方法一致
其他的事件
- 除了onload与onunload的使用有一点区别,别的都一致。
对象
JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。
创建对象使用
new
关键字
日期对象
日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒)
定义一个时间对象:
var Udate = new Date();
这是默认定义,初始值为当前电脑时间
如果要自定义值,使用以下方法:
var DATE = new Date(2018,10,4); //2018年10月4日
浏览器对象
window对象
window对象是BOM的核心,window对象指当前的浏览器窗口。
window对象方法:
方法 | 描述 |
---|---|
alert() | 显示带有一段消息和一个确认按钮的警告框 |
prompt() | 显示可提示用户输入的对话框 |
confirm() | 显示带有一段消息以及确认按钮和取消按钮的对话框 |
open() | 打开一个新的浏览器窗口或者查找一个已经命名的窗口 |
close() | 关闭浏览器窗口 |
print() | 打印当前窗口的内容 |
focus() | 把键盘焦点给予一个窗口 |
blur() | 把键盘焦点从顶层窗口移开 |
moveBy() | 可相对窗口的当前坐标把它移动指定的像素 |
moveTo() | 把窗口的左上角移动到一个指定的坐标 |
resizeBy() | 按照 |
resizeTo() | 把窗口的大小调整到指定的宽度和高度 |
scrollBy() | 按照指定的像素值来滚动内容 |
scrollTo() | 把内容滚动到指定的坐标 |
setInterval() | 每隔指定的时间执行代码 |
setTimeout() | 在指定的延迟时间后来执行代码 |
clearInterval() | 取消setInterval()的设置 |
clearTimeout() | 取消setTimeout()的设置 |
- 调用这些方法格式:
window.方法名(参数名);
例子:
1 | function myFunction() |
JavaScript计时器
在JavaScript中,我们可以在设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。
计时器类型:
一次性计时器:仅在指定的延迟时间之后触发一次。(setTimeout())
间隔性触发计时器:每隔一定的时间间隔就触发一次。(setInterval())
setInterval()方法格式:
setInterval(代码,交互时间)
参数中,代码就是要执行的函数挥着代码串,交互时间就是执行的时间间隔,以毫秒为单位
setInterval的返回值可以传递给clearInterval从而取消对代码的周期性执行。
假设有一个clock()函数,则调用格式为:
1 | setInterval("clock()",1000) |
DOM对象
getElementsByName方法
返回带有指定名称的节点对象的集合
语法:
document.getElementsByName(name)
其中name参数是标签上设置的name属性,和设置id属性格式一样,但是不同的标签可以设置同一个name属性,而id属性必须唯一
与getElementById()不同的是,通过元素的name属性查询元素而不是通过id属性
注意:因为文档中的name属性可能不唯一,所有的getElementByName()方法的返回值是元素的数组,而不是一个元素
和数组类似的也有length属性,可以和访问数组一样的方法来访问,从0开始
一些报错以及解决
jQuery报错:Uncaught ReferenceError: $ is not defined
- 出现这个报错的原因:
jQuery库文件的路径不对,检查文件路径是否正确一般就能解决该错误。
如果库文件的路径是正确的,那么可能在html中加载jQuery库文件顺序有误,如果将jQuery库文件加载放到最开始位置,即可以解决该错误
检查传值错误,或者某些值不存在。
> 最后更新于2018.7.18