JavaScript一些细节知识

来源:互联网 发布:永久中立国的意义 知乎 编辑:程序博客网 时间:2024/06/14 08:17

1. 在使用<script>嵌入JavaScript代码时,不能在代码中的任何地方出现“</script>"字符串,因为这样的字符串,会被解析成结束的</script>标签。可以通过将字符串拆分来实现,如  "</scr" + "ipt>"。

2.  switch语句在比较值时使用的是全等操作符,因此不会发生类型转换。

3. JavaScript中没有真正意义的重载

  ECMAScript中的函数不能实现传统意义上那样的重载,因为JavaScript不关心函数的签名,不在乎函数声明时的参数类型以及参数个数,而其他语言(如Java),正是通过识别同名函数的参数类型或参数个数来实现重载的。因此,JavaScript没有函数签名,不能实现真正的重载。

  但是,在JavaScript中,可以通过在函数体中检查传入的参数类型及数量,然后作出不同的响应,实现模仿重载的方法。

  在这过程中,需要着重考虑的一个对象是arguments。

4. JavaScript各浏览器间差异

IE对JavaScript的实现中存在一个偏差,其unshift()方法总是返回undefined而不是数组的新长度。

5. JavaScript判断浏览器

if(document.all){    //IE Browser;}else{    //Other Browser;}


6. JavaScript操作table单元格的一些方法:

var sales = document.getElementById(‘sales’);             //表格idvar rows = sales.rows;       //表格各行 var headRow = sales.tHead.rows;var bodyRows = sales.tBodies[0].rows;var cell = sales.rows[0].cells[0];

JavaScript兼容性

var theEvent = evt || window.event;

var oldElement = theEvent.fromElement || theEvent.relatedTarget;

var theSrc = theEvent.target || theEvent.srcElement;

theEvent.stopPropagation();  theEvent.cancelBubble = true;    //阻止冒泡

theEvent.preventDefault(); theEvent.returnValue = false;    //阻止默认行为

addEventListener(eventType, handler, true/false);

removeEventListener();

dispatchEvent();


attachEvent();  //this point to window

detachEvent();


8. JavaScript function

var namedFunction = function functionNamed(){

    console.log(typeof(functionNamed))    //function

}

console.log(typeof(functionNamed))        //undefined




0 0