web浏览器中的javascript
- 客户端javascript
- 在html里嵌入javascript
- javascript程序的执行
- 兼容性和互用性
- 可访问性
- 安全性
- 客户端框架
- 开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
window对象
-
计时器
-
浏览器定位和导航
-
浏览历史
-
浏览器和屏幕信息
-
对话框
-
错误处理
-
作为window对象属性的文档元素
alert(1);
return this;
}
}
Foo.getName=function(){
alert(2);
}
Foo.prototype.getName=function(){
alert(3);
}
var getName=function(){
alert(4);
}
function getName(){
alert(5);
}
/请写出下列输出的结果/
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();
- 首先更新代码结构,如下
当变量定义与函数名冲突时
进一步:根据js代码的执行顺序
进一步分析下面代码的调用运行
Foo.getName();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
new new Foo().getName();
1) Foo.getName();-----这里直接找到24行,即Foo函数添加了一个getName方法(后面的代码没有改变),所以------------------------------alert(2);
2)getName();--------这里相当于全局的函数getName(),找到26行,alert(4);
3)Foo().getName();------这里要考虑运算符优先级问题,. > [ ] > new > (),点的优先级最高,但是注意().无法执行调用
因此这里的执行顺序为–(Foo()).getName();
首先Foo()表示对函数Foo的调用
function Foo(){
getName=function(){
alert(1);
return this;
}
}
web浏览器中的javascript
- 客户端javascript
- 在html里嵌入javascript
- javascript程序的执行
- 兼容性和互用性
- 可访问性
- 安全性
- 客户端框架
- 开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
window对象
-
计时器
-
浏览器定位和导航
-
浏览历史
-
浏览器和屏幕信息
-
对话框
-
错误处理
-
作为window对象属性的文档元素