星期六早上好,网上最有帮助的在线社区! =)
我有几百行JavaScript,我想重新格式化,以便我更容易阅读。在我浪费一半的时间之前,我想过,我先在这里问我的问题。
我是JavaScript的新手,想知道下面的语法是否正确?
我的原始代码是:
function formfocus() {
if(document.getElementById('inputida')) {
document.getElementById('inputida').focus();
document.getElementById('inputida').value = '';
}
else if(document.getElementById('inputidb')) {
document.getElementById('inputidb').focus();
document.getElementById('inputidb').value = '';
}
}
function popitup(url, name, width, height) {
newwindow = window.open(url, name, 'width=' + width + ',height=' + height + ',scrollbars=yes');
if(window.focus) {
newwindow.focus();
}
return false;
}
...我想将代码更改为此(注意间距):
function formfocus()
{
if ( document.getElementById( 'inputida' ) )
{
document.getElementById( 'inputida' ).focus();
document.getElementById( 'inputida' ).value = '';
}
else if ( document.getElementById( 'inputidb' ) )
{
document.getElementById( 'inputidb' ).focus();
document.getElementById( 'inputidb' ).value = '';
}
}
function popitup( url, name, width, height )
{
newwindow = window.open( url, name, 'width=' + width + ', height=' + height + ', scrollbars=yes' );
if ( window.focus )
{
newwindow.focus();
}
return false;
}
差异在于:
'if'
和'else if'
陈述之后的间距parentheses
curly braces
答案 0 :(得分:2)
是的,您的新语法有效,并且等效于旧语法。
除了非常模糊的情况之外,JavaScript代码中的换行符和空格都会被忽略,因此您可以根据自己的喜好进行布局。
但是旧的语法是如何编写惯用的JavaScript - 一位经验丰富的JavaScript程序员在看你的新语法会觉得它看起来很奇怪。
答案 1 :(得分:2)
尽量避免多次调用document.getElementByID:
var objInputId = document.getElementById( 'inputid' );
objInputId.focus();
objInputId.value = "val";
答案 2 :(得分:1)
是它有效。
这增加了可读性。
但是在你的发布版本中,最好缩小你的js文件以减少带宽使用。
Jsmin是一个javascript minifer。
JSMin是一个删除的过滤器 评论和不必要的空白 来自JavaScript文件。它通常 将文件大小减少一半,导致 下载更快。它还鼓励一个 更具表现力的编程风格 因为它消除了下载 清洁,识字的成本 自文档。
答案 3 :(得分:0)
是的,Javascript不是基于行的,并且大多数间距不是必需的。
你甚至可以用这样一些令人难以置信的方式编写代码:
function formfocus(){if(document.getElementById(
'inputid')){document.getElementById('inputid').focus
();document.getElementById('inputid').value='';}else
if(document.getElementById('inputid')){document.
getElementById('inputid').focus();document.getElementById
('inputid').value='';}}function popitup(url,name,width,
height){newwindow=window.open(url,name,'width='+width+',
height='+height+',scrollbars=yes');if(window.focus
){newwindow.focus();}return false;}
或者这个:
function
formfocus
(
)
{
if
(
document
.
getElementById
(
'inputid'
)
)
{
document
.
getElementById
(
'inputid'
)
.
focus
(
)
;
document
.
getElementById
(
'inputid'
)
.
value
=
''
;
}
else
if
(
document
.
getElementById
(
'inputid'
)
)
{
document
.
getElementById
(
'inputid'
)
.focus
(
)
;
document
.
getElementById
(
'inputid'
)
.
value
=
''
;
}
}
function
popitup
(
url
,
name
,
width
,
height
)
{
newwindow
=
window
.
open
(
url
,
name
,
'width='
+
width
+
',height='
+
height
+
',scrollbars=yes'
)
;
if
(
window
.
focus
)
{
newwindow
.
focus
(
)
;
}
return
false
;
}
答案 4 :(得分:0)
您的更改看起来有效,但在该代码中需要进行大量清理。
formfocus
中,前两个if
语句是相同的;第二个是没有意义的。popitup
中,代码正在创建一个隐含的全局变量,这是一件坏事。它需要var
。因此:
function formfocus()
{
var elm;
elm = document.getElementById( 'inputid' );
if ( elm )
{
elm.focus();
elm.value = '';
}
}
function popitup( url, name, width, height )
{
var newwindow = window.open(
url,
name,
'width=' + width + ', height=' + height + ', scrollbars=yes'
);
if ( window.focus )
{
newwindow.focus();
}
return false;
}
(有关隐式全局变量的更多信息,请参阅blog.niftysnippets.org/2008/03/horror-of-implicit-globals.html;我已将不作为链接,因为它是我的自己的博客 - 不是那里有很多 - 而且我不想链接垃圾邮件。)