JS parseInt()问题

时间:2012-08-23 14:11:14

标签: javascript jquery

我知道我可能做错了什么。任何人都可以请指出为什么我作为对象获得顶级?

$(document).ready(function(){
    topwithpx='0px';
    alert(topwithpx);
    topstr=topwithpx.substr(0,topwithpx.length-2);
    alert(topstr);
    top=parseInt(topstr);
    alert(top);
});​

http://jsfiddle.net/kjMs9/

全部谢谢:'top'是保留关键字(Window.top)。我的错。接受第一个ans。快速回复所有+1。

7 个答案:

答案 0 :(得分:9)

因为它基本上是window.top,即Window object。请改用var top来防止将局部变量与全局(= window个对象的属性)混合。

事实上,让你的函数变量var成为常见例程 - 以防止将来遇到类似的问题。 )

答案 1 :(得分:4)

您无需使用substr删除pxparseInt会为您执行此操作:

topwithpx='0px';
var top = parseInt(topwithpx);
alert(top);  //alerts "0"

http://jsfiddle.net/kjMs9/3/

答案 2 :(得分:3)

window.top是DOM 0的一部分,无法分配号码。

避免使用全局变量。使用var

来限定它们
$(document).ready(function(){
    var topwithpx, topstr, top;
    topwithpx='0px';
    alert(topwithpx);
    topstr=topwithpx.substr(0,topwithpx.length-2);
    alert(topstr);
    top=parseInt(topstr);
    alert(top);
});​

答案 3 :(得分:3)

topwindow对象(MDN)的默认属性。将变量命名为其他内容。

答案 4 :(得分:2)

topwindowat least for Mozilla的只读属性,但也可能是所有其他大型浏览器。)

只需将top更改为topInt之类的其他内容即可。另外,使用var声明变量(例如var topInt = parseInt(...)。如果不使用var,则默认使用window属性,因此只读行为

顺便说一下,使用console.log代替alert

会更好一点

答案 5 :(得分:1)

topjavascript window属性。 您可以通过执行此操作将top用作变量

var top = ...

答案 6 :(得分:1)

$(document).ready(function(){
    topwithpx='0px';
    alert(topwithpx);
    topstr=topwithpx.substr(0,topwithpx.length-2);
    alert(topstr);
   var top=parseInt(topstr);
    alert(top);
});

你错过了变量声明