javascript常用小提示

javascript常用小提示
本文演示了Javascript中常用的技术,供大家参考,具体分析如下:

一、真和假布尔表达式

下列布尔表达式返回false:

无效的

未定义

空字符串

0号0

但小心以下,一切回到真实:

0'string 0

空数组{

是空对象

下面段落中的下面代码:

复制代码如下:(x)!= NULL){

您可以直接写入以下表单(只要x不为0,空字符串为false):

复制代码代码如下:(x){

如果要检查字符串是否为空或空:

复制代码如下:如果(y)!=零!=){

但这样会更好:

复制代码代码如下:如果(y){

注:有很多地方需要注意,例如:

布尔('0')=真

0!=真

0!= null

0 = }

0 = false

布尔(空)= false

无效的!=真

无效的!= false

布尔(未定义)= false

未定义!=真

未定义!= false

布尔({)} =真

真}!

{ = false

布尔({)} =真

{ }!=真

{ }!= false
二、条件(三元)经营者(:)

三元素运算符用于替换以下代码:
If (Val! = 0){
返回富();
{人}
返回条();
}

你可以写:

复制代码如下:返回;

它在生成HTML代码时也很有用:

复制代码代码如下;

三、和| |

两元布尔运算符短路,最后一项仅在必要时计算。

| | 被称为the'default'operator,因为它可以:
函数foo(opt_win){
VAR赢;
如果(opt_win){
赢得= opt_win;
{人}
窗口=;
}

}

您可以使用它简化上面的代码:
函数foo(opt_win){
VAR赢= opt_win窗口| |;

}
也可以是短代码。例如:
如果(节点){
如果(节点){
如果(节点){ { } }){
富(节点,子索引});
}
}
}

你可以像这样使用它:
如果(节点node.kids节点。孩子{指数}){
富(节点,子索引});
}

或:
VaR的孩子=节点node.kids节点。孩子{指数};
如果(小孩){
富(小子);
}

但那有点太过分了:

复制代码代码如下:结node.kids节点。孩子{指数} foo(节点。孩子{指数});
四。使用联接()创建字符串

它通常是这样使用的:
功能listhtml(项目){
html =;
对于(var i = 0;i < items.length;+ +我){
如果(i = 0){;
}
HTML = itemhtml(项目{我});
}
html;
返回HTML;
}

但是IE下速度很慢,你可以用下面的方法
功能listhtml(项目){
var;
对于(var i = 0;i < items.length;+ +我){
html {我} = itemhtml(项目{我});
}
返回+ html.join(',')+;
}

你也可以使用数组作为字符串的构造函数,然后将其转换为字符串通过myarray.join(的)。但是,赋值操作要比数组推()快,因此尽可能使用赋值操作。

五。遍历节点列表

节点列表是通过向节点迭代器添加筛选器来实现的。这表明获取其属性(如长度)的时间复杂度是O(n),而O则需要遍历整个列表。
VaR的段落= document.getelementsbytagname_r('p');
对于(var i = 0;i < paragraphs.length;i++){
DoSomething(段落{我});
}

这样做比较好。
VaR的段落= document.getelementsbytagname_r('p');
对于(var i=0,段落;段落=段落{ };i ++){
DoSomething(款);
}

该方法适用于所有的集合和数组(只要数组不包含的falsy价值)。

在上面的例子中,子节点也可以穿越firstChild和nextSibling。
VaR parentNode = document.getelementbyidx_x('foo);
对于(VAR的孩子= parentnode.firstchild;儿童;儿童=孩子。nextSibling){
DoSomething(儿童);
}

希望本文能对大家的javascript程序设计有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部