!!!- 常识
1、前端写代码应注意什么?
行为(Js)、样式(css)、结构(HTML)分离
!!!- CSS
1、在父元素为什么要添加font-size:0 ?
因为元素节点有文本节点,在缩进代码时会占据宽度,font-size:0 解决元素间的空白间隙
2、CSS选择器优先级
!important > 行间样式 > ID > Class > 元素选择器(p,div...) > *
!!!- HTML
!!!- JavaScript
***
ceil()向上取整
floor()向下取整
abs()绝对值
***单击按钮,停下来的DIV,还能移动?
加else
***运动开始前为什么要先关闭定时器?
开启定时器的时候,应该先关闭定时器
如果是setTimeout这种定时器,不清理就会在线程空闲后立即执行一次。
如果是setInterval这种,不清理,就一直按照间隔不断的执行下去。
***谈谈你对函数参数的理解?什么时候用?
函数传参:参数就是占位符
什么时候用:函数里定不下来的东西
***操作属性的方法?
。
【“str”】 (具体属性的值是可以任意改变的 JS中点可以做的,【】都可以做)
***变量和字符串
变量不带引号,会被当成字符串来处理
***对this的理解?
当前发生事件的元素
是一个关键字
***什么是JavaScript?
ECMAScript :解释器
DOM :文档对象
BOM:浏览器对象
***变量的类型?
number string boolean undefined(未定义) function object
***类型的转换?
强制类型转换: parseInt()整数 parseFloat()小数 number
隐式类型转换: == === +
***NAN的意思?
非数字
注:NAN和NAN是不相等的
***isNaN()?
判断是否是NAN,是就返回true,
***变量作用域?
全局变量,局部变量
***什么是闭包?
子函数可以使用父函数的局部变量
***运算符
逻辑运算符:&&与 || 或 !否
算术运算符:+ - x %
赋值运算符:= += -= *= /= %=
关系运算符:> < >= <= == === != !===
运算符优先级 括号()
***程序流程控制?
if(){}else{} while for switch ?:(三木运算符、三元) break(中断整个循环) continue(中断本次循环) true false
***JSON和数组的区别?
JSON的下标的字符串,数组的下标是数字
JSON没有length ,数组有length
JSON的循环for(var i in json)
***DOM操作:创建、删除、插入元素
创建:先创建createElement(标签名) 再添加到指定的位置 appendChild(节点)
删除: removeChild(节点)
插入:insertBefore(节点,原有节点)
注:insertBefore和appendChild功能是一样的,只不过插入的位置不一样
***文档碎片?
可以提高DOM性能,但只能是在低版本的浏览器上可以提升性能!吃惊不吃惊...
原理:相当于去超市购物的袋子
document.createDocumentFragment()
例子:
window.onload=function()
{
var ul1=document.getElementById('ul1');
for(var i=0;i<999;i++)
{
var aLi=document.createElement('li');
ul1.appendChild(aLi);
}
}
这样一个一个创建999个LI的话,很浪费性能,而文档碎片就是一个袋子,一下子创建
window.onload=function()
{
var ul1=document.getElementById('ul1');
var sui=document.createDocumentFragment(); //创建一个文档碎片
for(var i=0;i<999;i++)
{
var aLi=document.createElement('li');
sui.appendChild(aLi); //把创建的LI给文档碎片,
}
ul1.appendChild(sui); //最后一下子全部添加到ul中
}
***parentNode?
父节点,一般可以用来删除,点击《a》可以删除父节点
***表格
tBodies[0] ====》 getElementsByTagName('tbody')[0]
rows[o] ====》 getElementByTagName('tr')[0]
cells[1] ====》 getElementByTagName('td')[1]
tHend ====》 表头
tFoot ====》 表尾
***创建数组的语法?
1、 var arr=[值1,值2,值3]; //隐式创建
var arr1 = [1,3,5,7,9];
document.write(arr1[2] + '<br>');
2、var arr=new Array(值1,值2,值3); //直接实例化
var arr2 = new Array(2,4,6,8,10);
document.write(arr2[3] + '<br>');
3、var array=new Array(size); //创建数组并指定长度
var arr3 = new Array(3);//固定数组长度为3
arr3[0] = 1;
arr3[1] = 2;
arr3[2] = 3;
document.write(arr3[2] + '<br>');
***appendChild?
先删除,
再添加
***documentElement
属性可返回文档的根节点
***什么是Cookie
页面用来保存信息
cookie用来识别用户
cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScript 来创建和取回 cookie 的值。
*** Cookie的特性?
大小、数量有限
有过期时间
同一个网站同享一套Cookie,也就是一个域名.....
***
!!!- JQuery