1、typeof
var a=1;
var b="12";
var o={};
var t=true;
var n=null;
console.log(typeof a);
console.log(typeof b);
console.log(typeof o);
console.log(typeof t);
console.log(typeof n);
结果:
number string object boolean object(null是object) 如果是var r;typeof r ->undefined
2、盒子模型
从里到外:content padding border margin
W3C(doctype):width和height就是content的宽和高,但是在IE中,是border+padding+content的长度
3、href和src:
href表示超文本引用,用来建立当前元素和文档之间的链接。
如:a,link。
<a href="#"></a> <link href="a.css" rel="'stylesheet>
由于浏览器会自动识别.css文件,并且并行下载他们,并且不会停止 对当前文档的处理。所以使用link 而不使用@import加载css的原因。
src是source的缩写,是文件的引入,指向的内容会嵌入到文档中标签所在的位置。比如img,script,iframe
<script src="script.js"></script>
当页面遇到需要解析这个元素时,会暂停浏览器的渲染,直到该元素全部渲染完毕。这也是将js放在底部不是头部的原因。
换句话说,src是替换该元素,href是用于建立文档和资源之间的联系。
4、块级元素,和行内元素,空(void)元素
行内元素:a、b、span、img、input、strong、select、label、em、button、textarea
块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote
空元素:br、meta、hr、link、input、img
块级元素的特点:
1.总在新行上开始,占据一整行
2.默认情况下,其宽度自动填满其父元素宽度
3.宽度始终是与浏览器宽度一样,与内容无关
4.它可以容纳内联元素和其他块元素
5.display属性为block
块级元素的垂直相邻外边距margin会合并。
行内元素的特点:
1.和其他元素都在一行上
2.高,行高及外边距和内边距部分可改变
3.宽度只与内容有关
4.行内元素只能容纳文本或者其他行内元素
5.display属性为inline
水平方向的padding-left、padding-right、margin-left、margin-right都产生边距效果,
但竖直方向的padding-top、padding-bottom、margin-top、margin-bottom却不会产生边距效果。
不可以设置宽高,其宽度随着内容增加,高度随字体大小而改变,内联元素可以设置外边界,但是外边界不对上下起作用,只能对左右起作用。
空元素的特点:
没有内容的 HTML 内容被称为空元素。空元素是在开始标签中关闭的。
<br /> 就是没有关闭标签的空元素(<br /> 标签定义换行)。
在 XHTML、XML 以及未来版本的 HTML 中,所有元素必须被关闭。
在开始标签中添加斜杠,比如 <br />,是关闭空元素的正确方法,HTML、XHTML 和 XML 都接受这种方式。
即使 <br> 在所有浏览器中都是有效的,但使用 <br /> 其实是更长远的保障。
5、mvc与mvvm
MVC model view controller
model:存储数据
controller:业务逻辑
view:视图
view传送指令到controller中,controller完成逻辑后,要求model改变状态,model将新的数据传送到view,用户得到反馈
所有的通信都是单向的
MVVM model view ViewModel
他采用双向绑定,view改变直接反应在viewmodel中,反之亦然