当javaScript从入门到提高前需要注意的细节:变量部分(3)

来源:未知 责任编辑:责任编辑 发表时间:2014-05-20 18:32 点击:

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编译器知道你明确的要干嘛,而不是由他去猜呀猜的。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Gb2312转utf-8编码的方法(vbs+js)
  • 如何使用Ajax技术开发Web应用程序(1)
  • js跳转路径问题
  • JavaScript模仿桌面窗口
  • 用js检测两个线段是否相交
  • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
  • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
  • 我是如何去了解jquery的(六),案例之幻灯片轮换
  • Jquery封装幻灯片效果
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1