Javascript编程的10个实用技巧
在这篇文章中,我将列出Javascript新手和中级开发人员的10个Javascript实用技巧,希望每个读者至少能学到一个有用的技能。1。变量变换
这看起来很简单,但据我所见,使用构造函数(如数组()或数字())是一种常见的做法。
复制代码如下:变量myVar = 3.14159
str =+ / /串myVar
int = ~ ~ myVar、 /整数
浮= 1×myVar、 /浮
bool = myVar *!,布尔-任何长度的字符串
除0以外的任何数字都是正确的。
阵列= { myVar }; / /阵列
转换日期(新的日期(myVar))和正则表达式(new RegExp(myVar))必须使用构造函数,创建正则表达式的时候, /模式/标志的形式使用。
2。十进制转换为十六或八进制,反之亦然。
你是否编写了一个单独的函数来转换十六(或八进制)现在就停下来!可以使用更容易获得的功能:
复制代码代码如下所示:
(int),ToString(16); / /转换为十六进制,如12=C
(int),ToString(8); / /转换为八进制,12 = 14
ParseInt(字符串,16) / /转换为十六进制的整数,如FF> 255
ParseInt(字符串,8) / /转换成八进制整型如20 = > 16
三.玩数字游戏
除了上一节,还有更多的技巧来处理数字。
复制代码代码如下所示:
0xff; / /六宣言,返回255
020;八进制声明,返回16
1E3; / /指数,同样为1×Math.pow(10,3),返回1000
(1000)(。toexponential) / /相反;与以往,返回1E3
(3.1415),ToFixed(3); / /舍入数,返回3.142
4、Javascript版本检测
你知道你的浏览器支持哪个版本的Javascript吗如果你不知道,检查维基百科日历的Javascript版本。由于某些原因,一些Javascript 1.7版本的功能没有得到广泛支持的。但大多数浏览器支持1.8和1.8.1版本的特点。(注:所有的IE浏览器(IE8或以上版本)只支持1.5版Javascript。这里是一个通过检测特性来检测Javascript版本的脚本,它还检查特定Javascript版本的特性。
复制代码代码如下所示:
无功js_ver = { };
(号码。原型。固定)js_ver.push(1.5 ):假;
({ } { }。指标。foreach)js_ver.push(1.6 ):假;
((功能){ try({ {一},B = {0,1};return true;} catch(ex){ return false;} }))(js_ver。推)(1.7):假;
({ } { }。减少。reduceright JSON)js_ver.push(1.8 ):假;
(。trimleft)js_ver.push(1.8.1 ):假;
js_ver.supports =功能()
{
如果(参数{ 0 })
返回(!!~ this.join()。IndexOf(参数{ 0 } +
其他的
返回(这{这。length-1 });
}
警报(新的Javascript版本支持:+ js_ver.supports()));
警报(支持1.7版:+ js_ver.supports(1.7 ));
5。使用window.name简单会话处理
这是我真正喜欢的。你可以指定一个字符串作为财产价值的window.name直到你关闭标签或窗口。虽然我没有提供任何剧本,我强烈建议你充分利用这个方法,例如,建立一个网站或应用程序时,它是在调试测试模式的切换很有用。
6。判断的属性是否存在
这个问题包括检查属性和属性类型两个方面,但我们总是忽略这些小事情:
复制代码代码如下所示:
错误:这将在代码未定义时引起错误。
如果({){
DoSomething();
}
这不会造成任何错误。好的:然而,即使
设置为null或 false,条件验证为真
如果(类Foo!=未定义){
DoSomething();
}
更好:这不会造成任何错误。
值NULL或false不会验证为真
如果(窗口){
DoSomething();
}
然而,在某些情况下,当我们有一个更深入的结构,需要更适当的检查,我们可以:
复制代码如下:丑陋:我们必须证明每一个存在
对象之前,我们可以确定属性确实存在
如果(window.ofoo ofoo.obar ofoo。输出缓冲器地址寄存器。巴兹){
DoSomething();
}
7。将参数传递到函数
当函数是必需的和可选参数时,我们可以做:
复制代码代码如下:函数doSomething(arg0,arg1,arg2,ARG3,ARG4){
…
}
DoSomething(','foo ',5,{ },假);
传递一个对象要比传递一堆参数要方便得多。
复制代码代码如下:函数doSomething(){
如果没有什么是通过的,就离开这个函数。
如果(!参数{ 0 }){
返回false;
}
无功oargs =论点{ 0 }
arg0 = oargs.arg0 | |
arg1 = oargs.arg1 | |
2 = oargs.arg2 | | 0,
ARG3 = oargs.arg3 | | { },
oargs.arg4假| | ARG4 =;
}
DoSomething({
arg1:foo
2:5,
ARG4:假
});
这只是传递对象作为参数的一个非常简单的例子。例如,我们可以声明一个对象,变量名是键,默认值是值。
8。使用document.createdocumentfragment()
您可能需要动态地向文档中添加多个元素。但是,将它们直接插入文档将导致文档在同一时间重新排列。相反,您应该使用文档片段并只构建它们一次。
复制代码代码如下:功能createlist(){
var第一项
第四项
片段创建
无功ofrag = document.createdocumentfragment();
当(阿里长){
VaR OLI = document.createelement(礼);
从阵列/删除第一项,将它
作为一个文本节点
oli.appendchild(document.createtextnode(ali.shift()));
ofrag.appendchild(OLI);
}
document.getelementbyid('myul)。AppendChild(ofrag);
}
9。传递替换()方法的函数
有时你想替换为另一个值的字符串的一部分,最好的办法是通过一个单独的函数String.replace()。以下是一个简单的例子:
复制代码代码如下所示:
无功sflop =翻牌:{啊} { } { } KS 7c ;
VaR值= { 王牌
无功asuits = {H:心
:菱形
sflop = sflop.replace( / W + { } /胃肠道功能(选配){ {)
= match.replace比赛(比赛{ 2 },{ asuits比赛{ 2 } });
= match.replace比赛(比赛{ 1 },{ { 1 } }值匹配+ );
返回匹配;
});
sflop现在包含: / /串
翻牌:{红桃的王牌{黑桃/黑桃} {七的球杆}
标签在10中的使用。周期
有时,循环嵌套在循环中,您可能希望在循环中退出,您可以使用标签:
复制代码代码如下所示:
Outerloop:
对于(var = 0;ii < 5;ii + +){
如果(somethingistrue()){
外循环迭代中断
破环;
}
Innerloop:
对于(var = 0;IA < 5);
如果(somethingelseistrue()){
内部循环迭代
打破内环;
}
}
}