为什么 Math.log10 在某些系统上工作,但在其他系统上返回未定义
Why does Math.log10 work on some systems but return undefined on others?
我写了一个基于 html5 画布的应用程序,用于将电势绘制为颜色图。我正在使用 Math.log10 来重新缩放值,这在相当多的系统(Chrome-Firefox-Opera;笔记本电脑和 PC;视窗和 Ubuntu;集成和专用图形)。然后我发现一台 PC 和一台笔记本电脑都装有 Windows,情节不起作用。该错误显示无法将 Math.log10() 作为函数调用,并且仅在 js 控制台中键入 Math.log10 返回未定义。我通过将Math.log10(someValue)替换为Math.log(someValue)/2.3来解决这个故障。所以我的问题是:为什么会发生这种情况,还有其他类似的烦人差异吗?
这是
特定于浏览器的。并非所有浏览器都支持实验性Math.log10()
功能 - 主要的是Internet Explorer。
然而,Math.log()
是一个单独的功能,早在Math.log10()
年之前就已经引入,并且具有更大的浏览器支持。
Mozilla 开发者网络列出了浏览器对Math.log10()
的支持:
桌面浏览器
Chrome Firefox (Gecko) Internet Explorer Opera Safari 38 25 (25) Not supported 25 7.1
移动浏览器
Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Not supported Not supported 25.0 (25) Not supported Not supported iOS 8
Math.log10 = Math.log10 || function(x) {
return Math.log(x) * Math.LOG10E;
};
将其粘贴到您的通用 JS 文件中,如果浏览器不支持 log10,这将解决问题。
我知道为时已晚,但如果有人在搜索时到达您的帖子可能会有所帮助。
Math.log()
是纳皮尔对数(ln)。
所以你应该使用Math.log(value)/Math.log(10)
因为对数10(X) = ln(X)/ln(10)
Math.log()
具有更大的浏览器支持,如上一篇文章所述。
相关文章:
- 如何添加浮动和非浮动,其他
- 与其他库的jQuery.noConflict()
- 播放当前视频时如何停止其他视频?JavaScript
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 除修剪外的其他功能
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- Array.length似乎不起作用;console.log则显示其他情况
- 如何消除代码中的未定义和其他问题
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- Jquery未定义函数正在停止其他操作
- 如何将我的javascript库公开给其他客户端使用
- Javascript阻止其他Javascript代码
- 肉桂:修改“显示桌面”(+其他系统小程序)图标
- 为什么 Math.log10 在某些系统上工作,但在其他系统上返回未定义
- 如何使用javascript从chrome(或其他)浏览器连接到AS/400系统
- JQuery请求在一个系统上工作,但在其他系统上不工作
- 如何防止cookie被盗以及其他浏览器和系统上的用户