尽管我使用Javascript来做开发有良多年了,但它常有一些让我很惊奇的小特征。对于我来说,Javascript是需要持续不竭的进修的。在这篇文章中,我将列出10个Javascript使用小技巧,首要面向Javascript新手和中级开发者。但愿每个读者都能至少年夜中学到一个有用的技巧。 1.变量转换) v9 J6 q, e5 a* R" [' p
看起来很简单,但据我所看到的,使用机关函数,像Array()或者Number()来进行变量转换是常用的做法。始终使用原始数据类型(有时也称为字面量)来转换变量,这种没有任何额外的影响的做法反而效率更高。9 |- O9 Z6 ]) k# G$ ^) ?
& H: t/ E( ]! d4 z/ J
var myVar = "3.14159", str = ""+ myVar,// to string int = ~~myVar, // to integer float = 1*myVar, // to float bool = !!myVar, /* to boolean - any string with length and any number except 0 are true */ array = [myVar]; // to array 转换日期(new Date(myVar))和正则表达式(new RegExp(myVar))必需使用机关函数,而且建树正则表达式的时辰要使用/pattern/flags的形式。8 l! h2 f o; r6 h" V6 D
2.十进制转换为十六进制或者八进制,或者反过来
b( h0 M; Q: v你是不是写个零丁的函数来转换十六进制(或者八进制)呢?马上停下吧!有更轻易的现成的函数可以用:* P& m5 E6 c1 y! f! y" T9 R% z
* S+ D$ R& k1 z7 K3 b2 h(int).toString(16); // converts int to hex, eg 12 => "C" (int).toString(8); // converts int to octal, eg. 12 => "14" parseInt(string,16) // converts hex to int, eg. "FF" => 255 parseInt(string,8) // converts octal to int, eg. "20" => 16 3.玩转数字
. F. m. n/ Q w5 i) u除了上一节介绍的之外,这里有更多的措置数字的技巧:- E- B) q* e9 f3 g$ S
: r6 [( V# Z- H+ z$ @4 C0xFF; // Hex declaration, returns 255 020; // Octal declaration, returns 16 1e3; // Exponential, same as 1 * Math.pow(10,3), returns 1000 (1000).toExponential(); // Opposite with previous, returns 1e3 (3.1415).toFixed(3); // Rounding the number, returns "3.142" 4.Javascript版本检测0 `! `, ^1 H: F# a5 l! {8 o+ B
你知道你的浏览器撑持哪一个版本的Javascript吗?如不美观不知道的话,去维诬蔑科查一下Javascript版本表吧。出于某种原因,Javascript 1.7版本的某些特征是没有获得普遍的撑持。不外年夜部门浏览器都撑持了1.8版和1.8.1版的特征。(注:所有的IE浏览器(IE8或者更老的版本)只撑持1.5版的Javascript)这里有一个剧本,既能经由过程检测特征来检测JavaScript版本,它还能搜检特定的Javascript版本所撑持的特征。
/ T1 T) c- X. _- z9 V7 F8 P/ D6 ~4 [9 C1 S- n# B
var JS_ver = []; (Number.prototype.toFixed)?JS_ver.push("1.5"):false; ([].indexOf && [].forEach)?JS_ver.push("1.6"):false; ((function(){try {[a,b] = [0,1];return true;}catch(ex) {return false;}})())?JS_ver.push("1.7"):false; ([].reduce && [].reduceRight && JSON)?JS_ver.push("1.8"):false; ("".trimLeft)?JS_ver.push("1.8.1"):false; JS_ver.supports = function() { if (arguments[0]) return (!!~this.join().indexOf(arguments[0] +",") +","); else return (this[this.length-1]); } alert("Latest Javascript version supported: "+ JS_ver.supports()); alert("Support for version 1.7 : "+ JS_ver.supports("1.7")); 5.使用window.name进熟行单会话措置
n$ W9 i/ y {" s4 f+ O+ n, {1 n$ h3 L9 Z, |- l
这个是我真的喜欢的工具。您可觉得指定一个字符串作为window.name属性的值,直到您封锁该标签或窗口。虽然我没有供给任何剧本,但我强烈建议您如充实操作这个体例。举例来说,在培植一个网站或应用轨范的时辰,在调试和测试模式之间切换长短常有用的。 |