最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

一个挺有意思的Javascript小问题说明_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:00:44
文档

一个挺有意思的Javascript小问题说明_javascript技巧

一个挺有意思的Javascript小问题说明_javascript技巧:先来看以下3段代码 代码如下: var firstName = Mark; (function DisplayFirstName() { console.log(firstName); })();//必然输出 Mark var lastName = Aut; (function DisplayLastName() { var las
推荐度:
导读一个挺有意思的Javascript小问题说明_javascript技巧:先来看以下3段代码 代码如下: var firstName = Mark; (function DisplayFirstName() { console.log(firstName); })();//必然输出 Mark var lastName = Aut; (function DisplayLastName() { var las


先来看以下3段代码
代码如下:
var firstName = "Mark";
(function DisplayFirstName() {
console.log(firstName);
})();//必然输出 Mark
var lastName = "Aut";
(function DisplayLastName() {
var lastName = "Bru";
console.log(lastName);
})();//必然输出 Bru, 本地作用域的优先级高于全局作用域
//那么下面这段代码呢?
var lastName = "Aut";
(function DisplayLastName() {
console.log(lastName);
var lastName = "Bru";
console.log(lastName);
})();//谁能猜出结果是什么?

这个输出的结果是:
LOG: undefined
LOG: Bru

这出乎了我的意料, 我原来以为应该是 "Aut" 和 "Bru"的
我原来的理解是: 在程序第一个输出lastName的时候, 程序没有找到本地声明的lastName变量,所以使用了全局的lastName定义, 第二次的时候才使用本地变量的值
(因为在我的概念里,javascript是解释型语言,一句一句的......执行)

看到这个结果,看来javascript的执行并不都是顺序的..
目前为止,就我的猜测,javascript执行应该是先做语法分析,然后顺便分析完成了变量表(本地和全局)
然后才开始顺序执行一行行脚本
还请各位javascript高手解惑

文档

一个挺有意思的Javascript小问题说明_javascript技巧

一个挺有意思的Javascript小问题说明_javascript技巧:先来看以下3段代码 代码如下: var firstName = Mark; (function DisplayFirstName() { console.log(firstName); })();//必然输出 Mark var lastName = Aut; (function DisplayLastName() { var las
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top