javascript 一行代码的问题,帮忙解释下,看的不是很懂

function getRandomNumberByRange(start, end)  //范围随机数
{
    return Math.round(Math.random() * (end - start) + start);
}
function getRandomImgSrc () {
  return `https://picsum.photos/${w}/${h}/?image=${getRandomNumberByRange(0, 1084)}`
}

随机获取图片源的那个函数不是很理解,第一次 看到这样的代码,跨域获取.
https://picsum.photos/${w}/${h}/?image=${getRandomNumberByRange(0, 1084)}
讲解一下这行具体要怎么看,具体点,

阅读 2.8k
3 个回答

这个就是后台对图片资源的一个映射规则。
后台现在有编号0~1084的图片资源,然后前端需要获取这些图片资源并且能够指定需要获取的图片大小于是定义如下规则:
https://picsum.photos/{width}/{height}/?image={src}
其中的width/height即指定图片的宽高,src即对应后台图片资源的编号
剩下的应该不需要我解释了吧

picsum 提供了一个图片列表,我根据你给的代码试了下,果然,ID 从 0 到 1084。

你在 url 后面加的 ?image=... 实际是在通过指定的 ID 获取图片,只不过这个 ID 是自己计算的随机数(getRandmNumberByRange(0, 1084))。

其实 picsum 网站有说明,本来就提供了随机接口

Just add your desired image size (width & height) after our URL, and you'll get a random image.

https://picsum.photos/200/300

To get a square image, just add the size.

https://picsum.photos/200

所以,其实是不需要 ?image=随机数 参数的

哪里看不懂,注释不是写的很清楚了吗,先不管随机函数是否符合需求,看下面

getRandomImgSrc

这个函数返回一个地址等同于

return 'https://picsum.photos/'+w+'/'+h+'?image='+getRandomNumberByRange(0, 1084)

就是传一个w 图片宽 一个 h 图片高 然后跟上query 参数 参数名叫image 对应的值是随机数生成的一个数字

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题