1.数组去重
var a=[1,1,2,3,4,4,5]
var b=[]
for(var i=0;i<a.length;i++){
if(b.indexOf(a[i])==-1){
p.push(a[i])
}
}
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr1.length;j++){
arr[i].splice(j,1)
--j;
}
}
2.字符串截取
slice(),
substring(),
substr()
3.操作数组
push(),尾部添加
shift(),头部删除
unshift(),头部添加
pop()尾部删除
4.for
5.DOM操作
增删改查,获取节点(ID,classname,tagname,name)
document.getElementById()
document.createElement()
document.createTextNode()
removeChild
appendChild()
replaceChild()
insertBefore()
6.事件监听
addEventListener()
removeEventListener()
element.attachEvent(event, function)
element.detachEvent
7.事件冒泡
从具体到不具体 子级元素先触发,父级元素再触发
return false既可以阻止事件冒泡,又可以阻止事件默认行为
非IE浏览器 e.stopPropagation()
IE浏览器window.event.cancelBubble=true
8.阻止默认事件
return false()
event.preventDefault()
事件委托
事件委托就是利用冒泡的原理,把事件加到父元素或祖先元素上,触发执行效果。
.on .bind delegate() live()
9.Math方法
Math.max()
Math.min()
Math.abs()
Math.floor向下取整
Math.ceil()向上取整
Math.random随机数
10.布尔值转换
11.css3新增
文本阴影
盒子阴影
伪类选择器
p:first-of-type,其父元素首个p元素的每个p元素
last-of-type,
only-of-type
only-child 其父元素唯一子元素的每个p元素
p:nth-child(2) 其父元素第二个子元素的每个p元素
12.HTML5新增
13.存储
本地存储:localstorage,sessionstroage.
有什么区别?
localstorage是持久化的本地存储,数据不会被删除,
sessionstroage是一种会话级的存储,会话结束,数据也会随之销毁。
14.Date()对象
new Date() 获取本机时间
.getDate 获取日期
.getDay 获取星期
.gatFullYear 获取年份
.getMinutes 获取分钟
.getMonth 获取月份
.getSeconds 获取秒数
15.setTimeOut
16.position
absolute,绝对定位,根据最近一层来定位
relative,相对定位,根据自己所处位置来定位
fixed,固定定位,
17.盒模型
css的盒模型由content,padding,border,magin构成
18.bootstrap栅格系统
19.原生ajax
相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务器响应异步化。
对于用户请求ajax引擎会做一些数据验证和数据处理,不是所有请求都提交给服务器,当需要从服务器读取新数据时由Ajax引擎代为向服务器提交请求。AJAX最大优点就是不刷新整个页面的前提下与服务器通信维护数据。
过程的话
第一步:创建一个ajax引擎对象,ie6的是new ActiveXObject其他浏览器是new一个xmlHttpRequest对象
第二步 调用open方法启动一个请求以备发送,open方法传入三个参数 请求类型,请求url和一个布尔值
第三步 调用send方法发送
第四部 处理回调函数onreadystatechange,当readState = 4 响应数据完成时 并且2status=200请求成功的时候处理响应数据
注意:回调函数要写在open()和send()之前
20.jsonp原理
动态创建一个script利用其src属性实现跨域
动态创建一个script标签,利用script标签src属性访问没有限制,实现跨域。
web客户端通过与调用脚本一样的方式来调用跨域服务器上动态生成的js格式文件(后缀.json),服务器之所以要动态生成json文件目的把客户端需要的数据装入进去。
允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住json数据 这样客户端就可以随意定制自己的函数来自动处理返回数据
Ajax 和 jsonp的区别
1.ajax和jsonp的调用方式很像,目的一样,都是请求url,然后把服务器返回的数据进行处理,因此jquery和ext等框架都把jsonp作为ajax的一种形式进行了封装;
2.实质不同
ajax的核心是通过xmlHttpRequest获取非本页内容
jsonp的核心是动态添加script标签调用服务器提供的js脚本(后缀.json)
3.区别联系
不在于是否跨域
ajax通过服务端代理一样跨域
jsonp也不并不排斥同域的数据的获取
4.jsonp是一种方式或者说非强制性的协议
ajax也不一定非要用json格式来传递数据
5.jsonp只支持get请求,ajax支持get和post请求
21.http和https的区别
https相对来说更安全一点;
https比http更繁琐;
连接方式不同端口也不一样 (http是80,https是443。)
22.清除浮动的方法
overflow:hidden;
clear:both;
:after
zoom:1
23.闭包
从形式上看来它就像一个函数套另一个函数,
也就是访问上层函数作用域的内层函数就是闭包。
24.meta标签
25.图片懒加载
原理:当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张大小为1px图片的路径(这样就只需请求一次),只有当图片出现在 浏览器的可视区域内时,才设置图片真正的路径,让图片显示出来,这就是图片懒加载
26. 浏览器默认事件:
1.return false; (HTML、DOM0级)
2. event.preventDefault(); (W3C)
3.event.returnValue = false;(IE)
27.Dom操作:
DOM就是针对html和xml的一个编程接口,可以使开发人员进行修改、添加页面的某一部分。可以使用javaScript来操作dom实现增删改查,动态添加标签属性等