web前端知识汇总(转载)

1、javascript的类型转换

(比如"2"*1, "a"*1)

javascript会调用valueOf来转换为一个基本数据类型,在这种情况下,如果javascript不能通过valueOf转成一个number,会尝试调用toString,然后再转。实在无法转就只能NaN了。

2、类的创建、继承和闭包

JavaScript中严格说来没有类的概念,但是可以用Function来模拟类,Function可以通过new关键字来创建对象;

JavaScript中的继承是通过prototype来实现的,prototype在继承中用来传递数据或方法,具体实现:1.子类构造器中调用父类的构造器;2.子类的prototype指向父类;3.子类的构造器指回自身。

闭包简单说来就是含有数据的方法,由于该方法内部的某些属性一直为外部的环境所使用,所以不会被垃圾回收机制销毁。

3、GET和POST请求的区别

1)GET是从服务器上获取数据,POST是向服务器传送数据。

2)在客户端,GET方式在通过URL提交数据,数据URL中可以看到;POST方式,数据放置在HTML HEADER内提交。因此POST相对安全性较高。

3)对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用Request.Form获取提交的数据。

4)GET方式提交的数据最多只能有1K,而POST则没有此限制。

4、事件绑定

addEventListener或attachEvent(IE)

两者都可以添加/附加多个方法,但是多个方法的执行顺序是不同的:addEventListener先添加的先执行,attachEvent先附加的后执行(口诀:add到后面attach到前面);

5、HTML元素的id和name的区别

id是HTML元素的唯一标识,是与HTML元素本身相关;

name更多的是与HTML元素的内容相关,用途相对更多一些:

1)作为可与服务器交互数据的HTML元素的服务器端的标示,比如input、select、textarea、和button等。我们可以在服务器端通过name取值。

2)HTML元素Input在type=‘radio‘时确定分组关系,使之只能有一个能够选定。

3) 建立页面中的锚点,我们知道<a href="URL">link</a>是获得一个页面超级链接,如果不用href属性,而改用name,如:<a name="PageBottom"></a>,我们就获得了一个页面锚点。

4)在IMG元素和MAP元素之间关联的时候,如果要定义IMG的热点区域,需要使用其属性usemap,使usemap="#name"(被关联的MAP元素的name)。

6、锚点相关

<a name="somewhere"></a>就创建了一个锚点,<a href="#somewhere">go to somewhere</a>即可跳到上面的锚点。有href的link中添加的name也可以。

7、鼠标点击页面中的任意标签,alert该标签的名称

[javascript] view plaincopy
  1. document.onclick=function(e){  
  2.   e=e||window.event;  
  3.   var o=e.srcElement||e.target;  
  4.   alert(o.tagName);  
  5. }  

兼容性问题:

1)e=e||window.event;做事件处理时候区分IE和其他浏览器事件对象时常用的写法

2)IE下是srcElement,FF下是target。

8、异步加载js方案

1)动态写入script元素
[javascript] view plaincopy
  1. document.write("<script src=‘xxxx.js‘ type=‘text/javascript‘></script>");  
2)动态改变script元素的src值
[javascript] view plaincopy
  1. document.getElementById("script").src = "xxxx.js";  

9、对string对象经行扩展,使其具有删除前后空格的方法

[javascript] view plaincopy
  1. String.prototype.trim = function(){  
  2.     return this.replace(/^\s+|\s+$/g,"")  
  3. }  

web前端知识汇总(转载),布布扣,bubuko.com

web前端知识汇总(转载)

上一篇:十大Python机器学习开源项目


下一篇:js函数、变量提升(hoisting)