高铁上没事干,入门一波Js。
Tips
- 分号
;
可选 - 标识符以字母、下划线和美元符号开始
- 大小写敏感
Grammar
Var
var a = 10
声明变量
docunment.write(a)
输出
赋值为null可清除变量
- 点击运算
1 | <p id = "sumid"></p> |
Operator
+ - x / % ++ --
= += -= *= /= %=
== === != < > <= >=
&& || !
?:
三目
- 任何类型和字符串运算都会被转成字符串类型
这就是==
和===
的区别:
1 | "5"==5? |
Condition
if else
1 | switch(i){ |
Loop
for(;;){}
和C中一样
for (j in i)
while
do while
Function
调用
- 在
<script>
中 - 在Html中
异常捕获
1 | try{ |
事件
常用
事件 | 描述 |
---|---|
onClick | 单击 |
onMouseOver | 鼠标经过 |
onMouseOut | 鼠标移出 |
onChange | 文本内容改变 |
onSelect | 文本框选中 |
onFocus | 光标聚集 |
onBlur | 移开光标 |
onLoad | 网页加载 |
onUnload | 网页关闭 |
例子
1 | <html> |
DOM
网页被加载时,浏览器会创建页面的文档对象模型(Docunment Object Model)
DOM操作HTML
改变HTML输出流
document.write()
注意不要在文档加载完成之后使用,会覆盖文档。
寻找元素
- 通过id
1 | <script> |
通过标签名ByTagName···
返回的是一个数组
改变内容
1 | <script> |
- 改变属性
1 | <script> |
removeChild() insertBefore()
添加删除子节点
DOM操作CSS
1 | <button onclick="demo()">按钮</button> |
DOM EventListerner
事件句柄
- 方法:
addEventListener()
向指定元素添加事件句柄
1 | <script> |
这样就不需要写一个函数,再从button的属性中更改onclick="xxx()"
添加多个句柄不会覆盖
1 | <script> |
-
- removeEventListener()
移除方法添加的事件句柄
x.removeEventListener("click",func2);
事件详解
事件流
事件冒泡
由最具体的元素接收,然后逐级冒泡至最不具体的元素的节点。
事件捕获
由最不具体的.
事件处理
HTML事件处理
直接添加到HTML结构中
DOM 0级事件处理
1
2var x = document.getElementById("btn1");
btn1.onclick = function(){xxx;}这种事件处理会被覆盖
DOM 2级事件处理
- 即
addEventListener("事件名”,“事件处理函数”,“布尔值");
true: 事件捕获、
false: 事件冒泡
???:缺省值是true还是false?
- 即
IE 事件处理程序
事件对象
事件对象
在触发DOM事件的时候都会产生一个对象
事件对象event
- type: 获取事件类型
- target: 获取事件目标
- stopPropagation(): 阻止事件冒泡
- preventDefault(): 阻止事件默认行为
- 例子
1 | <script> |
内置对象
- 什么是对象:字符串、数组、数值、函数.所有事物都是对象。每个对象都有属性和方法。
- 自定义对象
- 定义并创建对象实例例子
1 | <script> |
- 使用函数定义对象,然后创建对象实例
例子
1 | <script> |
String字符串对象
方法:
- 字符串中查找字符串
indexOf()
有则返回位置。无则返回-1 - 匹配内容
match()
- 替换内容
replace()
- 字符串大小写转换
toUpperCase()``toLowerCase()
- 字符串转为数组
strong>split()
剩下的查文档吧。
Date日期对象
- 获取当前Date
1 | <script> |
- 常用方法
getFullyear()
获取年份gettime()
获取毫秒setFullyear()
设置具体的日期变量赋值getDay
获取星期
例子
1 | <script> |
数组
常用方法
a.concat(b)
合并数组a+bsort()
排序push()
末尾加元素reverse()
翻转
.
降序排列:
1 | <script> |
**???**这里不太懂为啥sort里传了个函数。
搜到了解答:
arrayObject.sort(sortby
)如果不传参数而默认按Ascii编码字母序排序。否则传入的就是比较函数。
比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
通过调试发现默认情况下,随机参数a b的值总是a比b小。所以a-b是升序。 b-a是降序。
Math对象
不多解释了Math.round(四舍五入) Math.random(0-1随机数).max().min().abs()
Js浏览器对象
window对象
window.open(,,)
可以设置打开的对象,窗口名,大小+位置window.close()
关闭
docunment\DOM啥的都是window的对象。可缺省。
计时器
setInterval()
间隔一定毫秒 不停地执行 指定代码clearInterval()
终止settimeout()
暂定一定毫秒后执行指定的代码 (就是延时执行,如果想不停执行还要递归调用。)cleantimeout()
例子
1 | <button id="btn" onclick="stopTimer()">停止时间</button> |