高铁上没事干,入门一波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> |