繁体   English   中英

JavaScript字符串内插

[英]Javascript string interpolation

我有一个Galleria(galleria.io),其代码如下所示:

Galleria.run('.galleria', {
  flickr: 'set:72157640607666844', }

但是,当我尝试将设置号设置为变量时,它以“致命错误:1失败:找不到照片集”而中断

var fakeVar = 72157640607666844
  Galleria.run('.galleria', {
  flickr: 'set:' + fakeVar, }

关于如何使它起作用的任何想法?

仅供参考:我查看了console.log('set:' + fakeVar) ,它肯定会返回set:72157640607666844。 最初,我以为是因为它返回的是不带引号的集合,但我知道不是这样,因为如果我执行" 'set:"+ fakeVar + " ' " ,我会得到'set的no方法错误。

同样,如果有帮助的话,这是定义set方法的Galleria程序代码:

set: function( photoset_id, callback ) {
    return this._find({
        photoset_id: photoset_id,
        method: 'flickr.photosets.getPhotos'
    }, callback);
},

在您的JavaScript控制台中尝试以下操作:

alert('set:' + 72157640607666844); alerts "set:72157640607666850" for me
parseInt("72157640607666844") // returns 72157640607666850 for me

JavaScript无法处理这么大的数字。 它内部使用双精度浮点表示数字,并且72157640607666850与JavaScript可以管理的72157640607666844保持接近。 您需要将其保留为字符串格式或使用像BigNumber这样的库来处理。

这是有关以多种语言表示整数更多信息

72157640607666844Number太重要了,无法完全存储JavaScript:

console.log(72157640607666844);
//          72157640607666850

为了避免精度问题,您可以将文字包装在引号中,因此使用String代替:

var fakeVar = '72157640607666844';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM