JavaScript patterns 笔记(二) 变量声名

本文探讨了JavaScript中函数内部变量声明的最佳实践,包括单一var模式的优势、多个var声明的样式、提升行为以及避免全局变量的方法。

1.       单一 var 模式:

在函数体的最上部只使用一个 var 声名变量,好处:

       a)       只在一个地方提供函数中使用的所有的变量

       b)       阻止因变量没有声名就被使用所引起的逻辑错误

       c)       能够帮助你想到要声名变量,因此可以最小化全局变量

       d)       减少代码量

 

样式:

function func() {

var a = 1,

b = 2,

sum = a + b,

myobject = {},

i,

j;

// function body...

}

使用一个var 声名多个变量,多个变量间使用逗号隔开; 在声名变量的同时又赋予了初值。当然也可以通过这种方式来做些实际的工作。

function updateElement() {

var el = document.getElementById("result"),

style = el.style;

// do something with el and style...

}

 

JavaScript 中可以在任何地方使用多个 var ,他们实际上和在函数体最上部声名是一样的。这种行为叫“ hoisting ”(提升)。当一个变量是先使用,后声名时,就会引起一些错误。

// antipattern

myname = "global"; // global variable

function func() {

alert(myname); // "undefined"

var myname = "local";

alert(myname); // "local"

}

func();

在第一个alert 时, myname 没有定义,因此函数很可能看到了全局的 myname ,但事实上不是这么工作的。因为 myname 被重新定义为局部变量。所有的变量都被提升到函数体的最上部。

上边的代码和下边的是一样的:

myname = "global"; // global variable

function func() {

var myname; // same as -> var myname = undefined;

alert(myname); // "undefined"

myname = "local";

alert(myname); // "local"

}

func();

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值