Javascript代码执行遇到的“坑”

78 阅读1分钟
  1. 函数直接量var a=function(a,b){} 匿名函数function(a,b){},在调用的时候,匿名函数无法获取局部作用域量
`var a='10';
function b(){
var a='11',
return new function {return a}
} //10`

`var a='10';
function b(){
var a='11',
return bb=new function {return a}
} //11`

2.打印document.write需要使用转义‘\’或者‘<’+'/script>'字符拼接 3.执行不改变当前文档流

`<a href='javascript:window.open("about:blank"); void 0;'>测试</a>` //void 

4.'1'.toString()为什么可以调用?

var s = new String('1');
s.toString();
s = null;

第一步: 创建String类实例。

第二步: 调用实例方法。

第三步: 执行完方法立即销毁这个实例。

整个过程体现了基本包装类型的性质,而基本包装类型恰恰属于基本数据类型,包括Boolean, Number和String。 5.Windows.addEventListener监听的是哪个阶段的事件

监听第三个参数如果为true时发生在捕获阶段,如果为false为冒泡阶段,默认为false
  1. ?. 在引用为空(null) 或者 [undefined]的情况下不会引起错误,该表达式短路返回值
  2. Object.getOwnPropertyDescriptors() getOwnPropertyDescriptor() 两者的区别:一个是只返回知道属性名的描述对象,不包括继承的属性,一个返回目标对象所有自身属性的描述对象