一.对于web标准和w3c的理解
- web标准要求,书写标签必须闭合、标签小写、不能随意嵌套等。页面结构的优化使页面针对浏览器SEO更加优化。
- css文件、js文件从外部引用,实现结构与表现以及结构与行为的分离,使内容加载更快。
- 代码的易用性,样式和标签分离,更加合理的标签语义化、可以在更多的平台运行,减少代码维护的难度和成本,改版更加方便。
- 不需要改变或者复制页面的内容即可提供打印版本,提高页面的易用性。
二、XHTML和html语言的区别
- html是一门基本的web网页设计语言,XHTML是一门XML的置标语言,是html向XML过渡的一门语言
- DOCTYPE所引入的标准不一样
- XHTML必须进行正确的嵌套,例如<b><i>内容</b></i>在XHTML中就是不行的
- XHTML中的元素必须小写
- XHTML中的标签必须关闭
- XHTML中必须要有根元素
三、闭包
- 概念:能够访问到另外一个函数作用域中的变量的函数
- 闭包会调用其父函数等的变量,这样会导致闭包一直占用该函数的这一些变量直到闭包销毁,该父元素执行完之后只会销毁其作用域而不会销毁被闭包占用的活动对象。
- 因为这些原因,闭包占用的内存比一般函数多,使用过度会导致内容消耗过多等问题。
典型闭包代码:
var test = function(data){ return function(a,b){ if(a>b){ return a+data; }else{ return b+data; } }; }; var jisuan = test(1); console.log(jisuan(2,3));
四、闭包和变量
- 闭包访问到的是包裹函数的变量的最终值,示例代码:
1 function parent(){ 2 var result = new Array(); 3 for(var i=0;i<10;i++){ 4 result[i] = function(){ 5 return i; 6 }; 7 } 8 9 return result;10 }11 var result = parent();12 for (var i = 0; i < result.length; i++) {13 console.log(result[i]());14 }
此方法最后打印出的结果会全部是10.
- 改进方法如下,为闭包套上一层父匿名函数给闭包提供变量,固定所需要的变量的当时状态,代码如下:
1 function parent(){ 2 var result = new Array(); 3 for(var i=0;i<10;i++){ 4 result[i] = function(num){ 5 return function(){ 6 return num; 7 }; 8 }(i); 9 }10 11 return result;12 }13 var result = parent();14 for (var i = 0; i < result.length; i++) {15 console.log(result[i]());16 }
此方法把i的值在函数赋值时进行固定,创建了i当时的副本用以给父匿名函数进行调用。所以正确的实现了打印出来的结果为0-9的数值.