JavaScript总结
JavaScript: JS - Behavior
ECMAScript - 语法规范 - ES5
BOM - 浏览器对象模型 - window
DOM - 文档对象模型 - document
JavaScript 数据类型
JavaScript 有隐式的类型转换。
简单数据类型: number
、string
、boolean
、null
、undefined
复杂数据类型: object
可以使用 typeof()
查看数据类型
JavaScript 运算符
算术运算符:+
、-
、 *
、/
、 %
、**
(ES7版本)
赋值运算符:=
、+=
、 -=
、 *=
、 /=
、%=
比较(关系)运算符: >
、 >=
、 <
、 <=
、 ==
、 !=
、===
(不带隐式类型转换的等于,全等于)、!==
(严格不等于)
逻辑运算符: &&
(短路与)、 ||
(短路或)、 !
自增自减运算符: ++
、--
位运算、成员运算
JavaScript 中的全局函数
isNaN()
判断是不是 不是一个数
parseInt()
取整,如果取不出,返回NaN
parseFloat()
取小数,如果取不出,返回NaN
isFinite()
判断是不是有限的数
eval()
- evaluate - 容易引发XSS(跨站脚本攻击)
encodeURIcomponent()
编成 百分号 编码
decodeURIcomponent()
从百分号编码 解码
获取对象
获取的对象元素:
document.getElementById(#id)
document.getElementByClassName(.class)
document.getElementByTagName(标签)
querySelector()
: 根据指定的选择器查找单个元素
querySelectorAll()
: 根据指定的选择器查找所有元素
this
// this 表示引发当前事件的对象元素
// evt
表示当前事件,evt.target
表示引发当前事件的事件源
// 需要在函数参数中 传入evt
对象
evt = evt || window.event; // 兼容低版本的IE
var target = evt.target || evt.srcElement;
在定义函数时,如果没有传入参数,那么函数中有一个隐藏的 arguments 对象,它代表了参数的列表,在调用时,可以传入任意多个参数。
1 | function foo(){ |
window对象
document
文档
location
地址栏 - href
/ reload
/ replace
history
历史记录 - go
/ forward
/ back
navigator
浏览器
screen
操作系统窗口 - availWidth
/ availHeight
/ width
/ height
alert
/confirm
/ prompt
open
/ close
setTimeout
/ setInterval
/ clearTimeout
/ clearInterval
修改节点的内容和属性
textContent
innerHTML
nodeValue
访问成员运算符 .
setAttribute
/ getAttribute
/ removeAttribute
创建新节点
createElement
追加新节点
appendChild
insertBefore
移除子节点
removeChild
通过自己节点访问父节点
parentNode
通过自己节点访问子节点
children
所有
firstChild
第一个
lastChild
最后一个
通过自己节点访问兄弟节点
nextSibling
前面的兄弟
prevSibling
后面的兄弟
JQuery
jQuery的$函数的作用:
1、$(function() {})
$() 函数传入的是一个函数,表示该函数是在页面加载完成之后要执行的回调函数
2、$(selector)
$() 函数传入的是一个选择器,表示通过选择器获得对应的元素,并处理成 jQuery对象,jQuery对象的本质是一个数组,如果要将jQuery对象转成原生js对象,使用下标或者get()
运算
3、$(element)
$() 函数传入的是一个原生js对象,表示将其转成jQuery对象
4、$(标签)
$() 函数传入的是一个标签,表示创建对应的元素并处理成jQuery对象
注意:当jQuery库和其他的库中的 $函数
有冲突,可以使用以下方法解决:
jQuery.noConflict()
将jQuery库中的 $函数
不起作用,但是jQuery库可以使用jQuery来替代 $
,其他库可以使用 $函数
。
查找元素
- 选择器
*
/element
/#id
/.class
/selector1, selector2
ancestor descendant
/parent>child
/previous+next
/previous~siblings
- 筛选器
- 基本筛选器:
:not(selector)
/:first
/:last
/:even
/:odd
/:eq(index)
/:gt(index)
/:lt(index)
/:animated
/:focus
- 内容筛选器:
:contains('…')
/:empty
/:parent
/:has(selector)
- 可见性筛选器:
:hidden
/:visible
- 子节点筛选器:
:nth-child(expr)
/:first-child
/:last-child
/:only-child
- 属性筛选器:
[attribute]
/[attribute='value']
/[attribute!='value']
/[attribute^='value']
/[attribute$='value']
/[attribute|='value']
/[attribute~='value']
- 基本筛选器:
- 表单:
:input
/:text
/:password
/:radio
/:checkbox
/:submit
/:image
/:reset
/:button
/:file
/:selected
/:enabled
/:disabled
/:checked
执行操作
- 内容操作
- 获取/修改内容:
html()
/text()
/replaceWith()
/remove()
- 获取/设置元素:
before()
/after()
/prepend()
/append()
/remove()
/clone()
/unwrap()
/detach()
/empty()
/add()
- 获取/修改属性:
attr()
/removeAttr()
/addClass()
/removeClass()
/css()
- 获取/设置表单值:
val()
- 获取/修改内容:
- 查找操作
- 查找方法:
find()
/parent()
/children()
/siblings()
/next()
/nextAll()
/prev()
/prevAll()
- 筛选器:
filter()
/not()
/has()
/is()
/contains()
- 索引编号:
eq()
- 查找方法:
- 尺寸和位置
- 尺寸相关:
height()
/width()
/innerHeight()
/innerWidth()
/outerWidth()
/outerHeight()
- 位置相关:
offset()
/position()
/scrollLeft()
/scrollTop()
- 尺寸相关:
- 特效和动画
- 基本动画:
show()
/hide()
/toggle()
- 消失出现:
fadeIn()
/fadeOut()
/fadeTo()
/fadeToggle()
- 滑动效果:
slideDown()
/slideUp()
/slideToggle()
- 自定义:
delay()
/stop()
/animate()
- 基本动画:
- 事件
- 文档加载:
ready()
/load()
- 用户交互:
on()
/off()
- 文档加载:
AJAX - Asynchronous JavaScript and XML
让浏览器向服务器发出异步请求(非阻塞式请求),等服务器返回了响应数据(JSON/XML)后就可以对页面进行局部刷新,这样就可以在不中断用户体验的前提下刷新页面数据
1 | $.ajax({ |