JS技术

javascript编程的陷阱(gotcha)_Javascript教程

字号+ 作者:H5之家 来源:H5之家 2015-10-02 10:17 我要评论( )

javascript编程的陷阱(gotcha),学习javascript编程的陷阱(gotcha),javascript编程的陷阱(gotcha),查看javascript编程的陷阱(gotcha),1.浮点运算这可能是挫败一些

1.浮点运算

这可能是挫败一些对javascript不熟悉并准备执行一些数学运算的人的主要原因.

<script>  
alert(0.02 / 0.1);  //0.19999999999999998   
alert(1.14 * 100);  //113.99999999999999    ;)  
</script> 

Math.round()就能在这里派上用场.

2.加号操作符的重载

"+"加号运算符即能做算术运算,又能够做字符串的连接.如果正确的使用它是很便利的.让我们看一看.

<script>  
var msg, one="1";  
msg = 2 + "1"; // msg = "21"  
msg = 2 + one; // msg = "21"  
msg = 1 + 1 + 1 + " musketeers"; // msg = "3 musketeers"  
msg = "Bond " + 0 + 0 + 7; //msg = "Bond 007"    
</script> 

上述行为是因为这些运算都是从左到右执行的.类型的转换是基于其中的字符串或数字.

3.行尾插入分号

javascript 自动在行尾插入分号";",让我们来看看这在一个简单的示例中的情况.

<script>  
function returnSame(a){  
   return                 //Inserts semi-colon to convert to return;  
   a                      //a becomes a; - Unreachable  
}  
alert(returnSame(2));  //Output is undefined  
</script> 

当在创建对象或使用对象的值的时候这个神奇的分号能使事情变得更复杂.

4.typeof操作符

typeof 是一个一元操作符,运算结果往往并不是如预期的那样.令人吃惊的是对"null"的运算结果是"object"

<script>  
var obj={};  //object created using object literal  
var arr=[];  //array created by array literal  
alert(typeof(obj));   //object  - Good  
alert(typeof(arr));   //object  - Bad  
alert(typeof(null));  //object  - Ugly!  ;) 

</script>
它仅仅能查找对象的原始类型.

5. false, null, undefined, NaN, Infinity

尽管他们看起来相似,但他们代表着不通的意思.javascript有3种基本数据类型数字numbers, 字符串strings 和布尔 boolean,除此之外还有两个不重要的数据类型"undefine"和"null".按照"=="运算符运算,null和undefine是相等的.

<script>  
var a;  
alert (a);    //undefined  
alert (1/0);  //Infinity  
alert (0/0);  //NaN  
0/0 == 0/0;   //false - a NaN != NaN  
alert (b);    //error  
</script> 

6.字符串只替换第一个匹配的字符

与PHP或其他程序语言不同,默认情况下,javascript的字符替换只替换第一个出现的匹配的字符.

<script>  
var nospace = "I dont need spaces".replace(" ","_");  
alert(nospace);    //I_dont need spaces   - Only first occurence  
var nospace = "I dont need spaces".replace(/ /g,"_");  
alert(nospace);    //I_dont_need_spaces  
</script> 

 7.parseInt 函数


parseInt 用来将一个字符串转换为整数类型.这个函数能传入两个参数,第二个参数是指定多少进制的.这里十进制用 10 指定.如果没有指定进制,则parseInt函数自己会试图找到合适的进制.如果是这样,以0开头的字符串将会转换为8进制.

<script>  
var str = "017";  
var strInt = parseInt(str);      //strInt = 15  ;)  
var strInt = parseInt(str,10);   //strInt = 17  
</script> 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JavaScript入门教程(二)_javascript教程教程

    JavaScript入门教程(二)_javascript教程教程

    2015-10-10 14:25

  • JavaScript入门教程(五)_javascript教程教程

    JavaScript入门教程(五)_javascript教程教程

    2015-10-10 14:21

  • JavaScript入门教程(四)_javascript教程教程

    JavaScript入门教程(四)_javascript教程教程

    2015-10-10 14:19

  • JavaScript入门教程(三)_javascript教程教程

    JavaScript入门教程(三)_javascript教程教程

    2015-10-10 14:17

网友点评