1.web标准是什么?
结构-样式-行为(html-css-javascript)
2.css样式层级?
!important>行间>id>类>标签>通配符(*)
3.网页解析?
结构(html)-样式(css)-行为(javascript)
4.js中全局变量属于?怎样解决他不是window的?改变他的指向?es6中的箭头函数嵌套this的指向就不会直接指向window
5.return的特性?阻止return之后的代码执行,封装函数,返回函数的值如没有具体的返回值就返回undefined
6.阻止默认事件
(1)return false (2)preventDefault (3)event.returnValue=false
7.批量修改样式?
(1)ie用style.cssText={},
(2)with(obj.style)有缺限自己尝试
(3)改类名
8.提取css非行间样式
currentStyle[]
getComputedStyle(obj,false)[]
9.break结束循环continue跳出本次循环可以在while中使用
10.循环语句
for(var i in obj)
for
while
for Each
map循环
11.判断语句
if else适合于区间的判断
switch适合离散值判断
三步运算符判断 1>2?1:2;()
12.什么是真(true)、什么是假(false)?
true:非空字符串、非空对象、非0数字
false:0 、空字符、undefined、null、NaN
13数据类型(7种)
number、object、string、symbol、null、bollean、undefined
14.检测数据类型 typeOf
什么时候返回undefined:(1)函数没有返回值(2)返回不存在的属性(3)变量没赋值
undefined/not define 前者是未定义,后者是未声明,不可判断
15.字符串方法
charAt()、获取某一位置的字符串,查找给定位置的字符
indexof()它从字符串的开头开始查找,找到返回对应坐标,找不到返回-1。
lastindexof()它从字符串的末尾开始查找,找到返回对应坐标,找不到返回-1。
tolowerCase()转换为小写字符串
toUpperCase()转换为大写字符串
splice()截取字符串
split() split()的第二个参数,表示返回的字符串数组的最大长度。
substr() substr 方法用于返回一个从指定位置开始的指定长度的子字符串。stringObject.substr(start [, length ])
substring()、substring 方法用于提取字符串中介于两个指定下标之间的字符,取头不取尾。 stringObject.substring(start,stop)
replace()、默认只替换第一次查找到的,想要全局替换,需要置上正则全局标识
concat()字符串连接,concat()函数可以有多个参数,传递多个字符串,拼接多个字符串。
dram()去掉收尾空格(不兼容)
16.数组方法
push()
pop()、
shift()、
unshift()、
splice()、
join() 使用您选择的分隔符将一个数组合并为一个字符串
reverse()、
sort()
17.严格模式的好处
解决了this的全局指向,变量必须声明(不支持with)
this问题?在定时器中也用es6的箭头函数可解决
循环中加事件,i的问题:(1)自定义属性IE不兼容,加在行间会过滤掉,但可以用在js中(2)封闭空间(自执行函数)
18.获取表单元素的内容?obj.value()
19.ajax?
字符串转对象 eval
解析字符串?new function{
return 一个变量
}
20.鼠标事件
onclick 点击
ondblclick双击
onload 加载完成
onchange配合select改变时
onpropertychange配合input在IE下兼容input的
onblur失去焦点
onfocus获取焦点
onscroll滚动
onsubmit表单提交
onselect下拉选中时
onmouseover鼠标移动到目标上时触发
onmouseleave离开指定元素的范围(区域)
onmouseout鼠标移除离开指定元素
onmouseup鼠标抬起
onmousedown鼠标按下
onmousemove鼠标移动
onkeydown键盘按下
onkeyup键盘抬起
oncontextmenu右键
onmousewheel滚轮
21.event兼容?ev||event;ev兼容高版本浏览器 event兼容各大浏览器
事件绑定?addeventlistener("事件名","对调函数","false")//true冒泡 false 捕获
兼容IE事件绑定?attachEvent(on"事件名","回调函数",false)
解除事件绑定removeEvent()、detachEvent()IE下的解除绑定
阻止冒泡事件stopPropagation();event.cancelBubble=true;return false既可以阻止事件冒泡,又可以阻止事件默认行为
22.事件捕获?
setcapture()、relishcapture()
23.事件委托
targat=ev.srcElement||ev.target;
24.滚轮事件
滚动距离 :document.body.scrolltop滚动顶部距离 document.body.scrollleft滚动左部距离
滚动方向
获取可是区域鼠标的坐标
25.DOM
创建DOM,
添加节点
克隆
获取节点
检测节点类型 Nodetype
26.BOM的属性:window、screen、location、history、Navigator、Timing、Cookies、PopupAlert
27.UA
28.getBoundingClientRect() 解决穿墙中的问题
- .(点)是标识符;[]是表达式;{}是json对象
30.常见的浏览器内核:
Trident内核 Internet Explorer,又称其为IE内核
31.异步加载,直接设置在script标签 async defer(IE)
32.优化js
减少http请求;合并文件;精灵图 雪碧图;减少dns 查询(dns域名解析,避免重定向《也就是再发一次ajax请求,比如不可直接换src,使用ajax可以缓存》);减少DOM操作(所有的结构会重新解析,引起重排html,重绘css)
33.server 方面
使用CDN 网上加速