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
出租车司机:敏感链接被屏蔽