2017.10.13 JavaScript 变量提升和使用误区

1. JavaScript 变量提升

变量提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部。

JavaScript 初始化不会提升

var x = 5; // 初始化 x
var y = 7; // 初始化 y

elem = document.getElementById("demo"); // 查找元素 
elem.innerHTML = x + " " + y;           // 显示 x 和 y
var x = 5; // 初始化 x

elem = document.getElementById("demo"); // 查找元素 
elem.innerHTML = x + " " + y;           // 显示 x 和 y

var y = 7; // 初始化 y

实例 2 的 y 输出了 undefined,这是因为变量声明 (var y) 提升了,但是初始化(y = 7) 并不会提升,所以 y 变量是一个未定义的变量。

在头部声明你的变量

对于大多数程序员来说并不知道 JavaScript 变量提升。

如果程序员不能很好的理解变量提升,他们写的程序就容易出现一些问题。

为了避免这些问题,通常我们在每个作用域开始前声明这些变量,这也是正常的 JavaScript 解析步骤,易于我们理解。


2. 使用误区

虽然在 JavaScript 中,分号是可选的 。
但是要注意 return 的用法:
这样的语句是完整的:

      return

执行时 JavaScript 将自动关闭语句:

return;

由于 return 是一个完整的语句,所以 JavaScript 将关闭 return 语句。
所以不用对 return 语句进行断行。如下实例:

return 
ture;

//JavaScript会解析成:

return ;  true;

//而代码本意是这样的:

return   true;

3. 问题:禁用部分右键

image.png

4. 分享几部电影

重庆森林 http://pan.baidu.com/s/1dFpiChj
颐和园 http://pan.baidu.com/s/1qXVjtZA
卢旺达饭店http://pan.baidu.com/s/1qXVjtZA
出租车司机:敏感链接被屏蔽

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,784评论 0 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • 我一点儿也不喜欢水仙小妖,若非迫于山神大人的神威,我一定逃之夭夭。说真的,我堂堂异兽猛将,竟沦为一个小丫头的...
    小小生姜阅读 283评论 0 0
  • 在报章杂志中,总能看到成功人士说自己是顺从内心的热情,才达到现在的成就。职涯顾问也都说,你要先知道自己的热情所在,...
    clairejojo阅读 513评论 0 0
  • 内在美、外在美只能二选一吗? “国人对内在美的常年追捧,背后实则是控制欲”,当我看到这句话,一身冷汗,一阵颤悚,女...
    春暖花开_1d97阅读 211评论 0 1