当javaScript从入门到提高前需要注意的细节:变量部分(3)
6
}
7
8
fun1();
上面的现象很奇怪,如果我们当真要用x和y的时候,编译器却给予不同的对待,认为x仅仅是没有定义(认可已经声明了),而y是真正的不存在。这说明在处理 一个范围的变量的时候,var无论你在哪里声明的,总是一开始就进行分配了。对于非var定义的变量嘛,就没有这样的待遇了,必须等执行到才进行分配
1
<pre name="code" class="html">function fun1() {
2
alert(x); //提示x没有定义
3
alert(y); //提示y没有定义
4
x = 10;
5
alert(x); //number
6
}
7
fun1();
更需要注意的是,在函数内部声明的var变量,并不局限在声明的代码语句块中,看看以下代码
1
function fun1() {
2
for (var i = 0; i < 10; i++) {
3
4
}
5
alert(i); //10
6
}
7
8
fun1();
所以呢,我们推荐在一个对象/函数的第一行就把所有的局部变量全部声明完毕
1
function fun1() {
2
var value = 1,
3
arr = [],
4
obj = {},
5
date = new Date(),
6
has = false;
7
}
注意变量之间用逗号隔离,这样的好处是明显的,自己去考虑吧。
javaScript的语法很灵活,语句后面可以不加;来表示结束,这个时候编译器会讲硬回车作为语句的结束符合
1
function fun1() {
2
var x = 10
3
var y = 9
4
return x + y
5
}
6
7
alert(fun1()); //19
以上的代码写法我不知道有什么特别的好处,如果是炫耀你知道可以不用;来结束语句,那就到此为止吧。因为下面的代码会得到一个错误
01
function fun1() {
02
return
03
{
04
Title: "title",
05
Style: "style",
06
Value: "Value"
07
}
08
}
09
10
alert(typeof fun1());
因为javaScript会再return后面加一个;
正确的做法是
1
function fun1() {
2
return {
3
Title: "title",
4
Style: "style",
5
Value: "Value"
6
};
7
}
8
9
alert(typeof fun1());
我不好说,这个原因一定是;不写引起的,但我想说明的是,你要小心javaScript对随意代码的随意处理:你总是应该让javaScript编译器知道你明确的要干嘛,而不是由他去猜呀猜的。
相关新闻>>
- Javascript 兼容 IE6、IE7、FF 的“加入收藏”“设为首页”
- 好好学一遍JavaScript 笔记(一)——基础中的基础
- 好好学一遍JavaScript 笔记(二)——encode、数组、对象创建
- 好好学一遍JavaScript 笔记(三)——StringBuffer、prototype
- 好好学一遍javaScript 笔记(四)——Attribute、HTML元素、文档碎
- 好好学一遍JavaScript 笔记(五)——正则表达式基础
- 好好学一遍JavaScript 笔记(六)——正则表达式基础二
- 好好学一遍JavaScript 笔记(七)——RegExp对象与常用正则
- 好好学一遍JavaScript 笔记(八)——冒泡型事件、捕获型事件
- Gridx入门
- 发表评论
-
- 最新评论 更多>>