不同的网站具有不同的功能,电商、视频、社交、知识分享....
这些网站各具特色,而且差异较大,以社交和电商为例,一个是用于商品交易的,一个是用于社交的,因此,背后的架构体系,主要功能自然会有千差万别。
因此,我们对不同网站功能增强的诉求是不同的,希望电商网站可以具有历史价格对比、希望视频平台可以提供免费解析和下载功能等等。
所以,很难有一款功能能够同时是用于不同的网站,起到对不同网站的增强作用。
但是,只有你想不到,没有开发者做不到的,今天就来给大家介绍一个强大的工具--万能命令,能够是用于几乎所有主流的网站,为各个网站提供实用的在线工具。
我对这款工具的评价:如果编辑器领域的VS Code、Chrome插件界的Tampermonkey。
它把各种各样告知量的在线工具聚合到一起,然后,让你访问各种网站时能够快速匹配到相应的在线工具。
如果觉得这个概述有些晦涩难懂,那么就再举一个直白的例子。
它如同给各个网站穿了一件外套,当我们打开这个网站时,它会解析URL,然后列举出是用于访问网站的实用工具。这些工具包括但不限于商品历史价格对比、视频解析、音视频下载、网页在线翻译、网页长截图、生成网址二维码、生成短连接、在线转PDF、查看网站排名、查看适合网站的油猴脚本等。
其中,有些在线工具适用于所有网站,例如,网站翻译、网站截图,有些在线工具个别网站,例如,视频解析、商品历史价。
查看适合网站的油猴脚本
这是最令我惊艳的一项功能,我之前就在一篇文章中介绍过油猴这款逆天的浏览器插件,它可以配合脚本实现各种各样的功能。
那么,该如何找到适合的脚本却成了一个很困难的问题。
我之前也只不过从众多脚本中精选了5款推荐给大家,但是,肯定还会有很多强大、好用的脚本没有被发掘。
而万能命令就可以实现这项功能。
当我们使用万能命令访问某个网站时,它会列出查看当前站点可用的油猴用户脚本(greasyfork),点击之后你就可以看到适合于当前网站的热门插件,通过这些脚本,可以毫不客气的说,万能命令+油猴的组合,让浏览器已经无所不能了。
商品历史价格
数据是一个非常容易引起人兴趣,而且给人直观感受的东西。
举个例子,当你做汇报的时候,文字描述“效率得到大大提升”和“执行时间降低80%”带来的效果是截然不同的。
购买物品也是,当我们在电商平台购买一样东西时,直接给出一个价格数字,很难给人心智上带来强烈的感受。但是,如果把商品的历史价格都给出,并且画出一幅趋势图,那么就很清楚的能够看出它的价格变动趋势、生命周期,就知道,什么时候买这件商品最为合适。
音视频解析
网络上关于下载音视频的方法、工具,数不胜数,要么是需要繁琐的过程,要么不稳定。
万能命令可以说是我遇到过最为轻量化、最为简单的一种音乐下载方案。
只需要找到酷狗、QQ等音乐平台的音乐链接,加上万能命令的前缀,就可以列举出适合这个URL的在线工具。这时候,你会发现它会列举出各种下载工具,点击其中一个就可以跳转到下载链接,这样就可以轻松下载音视频。
百度文库下载
百度文库有很多有价值的材料,尤其是对于在校学生,各种练习题、电子书、课件。可是,凡是好一些的资料,都无法免费下载。
因此,关于百度文库下载的工具也是层出不穷。当然,其中也有一些不错的,比如我之前用过的冰点文库下载器就很好用。
但是,万能命令让这件事情变的更加简单。只需要一个命令,就可以列举出所有适合百度文库的在线工具,通过这些工具就可以轻松下载你想要的材料。
短视频下载
在各种短视频、知识分享平台都会有各种各样的小视频,如果你想下载这些小视频,万能命令也可以提供强有力的帮助。
一个命令,就可以列举出一些强大的在线工具,这些工具支持CNTV、新浪、搜狐、爆米花、小咖秀、微博视频、乐视网、56、芒果TV、知乎、网易公开课/音乐、头条、西瓜、优酷/土豆、音悦台、秒拍等上百个网站。
前面介绍了这么多,估计很多同学早已经急不可待,这款工具到底该怎么使用呢?
首先说一下,无论你是iOS、mac还是Android、Windows用户,都不用担心,它可以支持所有平台,可以在Windows、mac、Linux、Android、iOS全平台下运行,换句话说,只要你有浏览器,就可以使用。
万能命令的使用有两种方式:
方式1:命令
这种方式非常简单,只需要一个命令即可。
使用方法:在你访问的网址前面加上wn.run/ 即可。
举例:wn.run/https://item.jd.com/100006546527.html
这样就可以列出所有适合这个网站的在线工具。
方式2:书签脚本
如果,你是在PC浏览器中使用,可以访问万能命令网站[1],找到拖动本按钮到书签栏,把这个脚本拖动到书签栏就可以了。
如果是在移动端使用,可以手动添加一个书签,书签名称可以自定义,并在书签的网址项里输入下面的代码,
javascript:(function(){window.open("https://wanneng.run/f/#"+document.location.href)})()
然后,当访问任何网站时,只需要点击一下书签栏的万能命令书签即可。
这两种不同的方式都非常简单,可以根据个人的使用偏好进行选择。
JavaScript中,函数节流(Throttle)和防抖(Debounce)是两种常见的技术,用于限制函数的调用频率。它们在处理高频事件时非常有用,比如鼠标滚动、输入框输入等。
函数节流是指限制函数在一定时间内只能被调用一次。以下是一个简单的函数节流示例:
// 定义一个节流函数
function throttle(fn, delay) {
let canRun = true;
// 延迟执行函数
return function() {
if (canRun) {
fn.apply(this, arguments);
canRun = false;
setTimeout(() => {
canRun = true;
}, delay);
}
}
}
// 使用节流函数
const throttledFunction = throttle(() => {
console.log('函数被调用');
}, 1000);
// 每隔 1 秒调用一次 throttledFunction
setInterval(throttledFunction, 1000);
在上述示例中,throttle函数接受一个要限制的函数fn和延迟时间delay。它返回一个新的函数,该函数会在每次调用时检查canRun变量,如果为真则执行原函数fn ,并将canRun设置为假。然后使用setTimeout函数在delay毫秒后将canRun重新设置为真。
通过这种方式,即使在短时间内频繁触发事件,函数也只会在一定时间间隔内被调用一次,从而达到节流的效果。
函数防抖是指在事件被连续触发时,只有在一定时间内没有再次触发事件时,才会执行函数。以下是一个简单的函数防抖示例:
// 定义一个防抖函数
function debounce(fn, delay) {
let timer;
// 清除定时器
return function() {
clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(this, arguments);
}, delay);
}
}
// 使用防抖函数
const debouncedFunction = debounce(() => {
console.log('函数被调用');
}, 1000);
// 频繁触发 debouncedFunction
document.addEventListener('scroll', debouncedFunction);
在上述示例中,debounce函数同样接受一个要限制的函数fn和延迟时间delay。当事件触发时,它会清除之前设置的定时器,并重新设置一个定时器。只有当定时器超时且在这段时间内没有再次触发事件时才会执行原函数fn 。
函数防抖通常用于避免在短时间内频繁执行某个函数,例如搜索框的自动完成功能。
选择使用节流还是防抖取决于具体的场景需求。如果希望在一段时间内限制函数的调用次数,例如限制按钮的点击频率,那么函数节流可能更适合。如果希望在连续触发事件后延迟执行函数,例如输入框的实时搜索,那么函数防抖可能更合适。
此外,还可以根据性能和用户体验来选择。函数节流相对来说更简单,性能较好,但可能会导致某些操作的延迟。而函数防抖可以避免不必要的频繁执行,但可能会在延迟期间丢失一些触发事件。
在实际应用中,可以根据具体情况选择合适的技术,或者结合使用这两种技术来满足不同的需求。
介绍
福哥今天要给大家讲讲编程里的重头戏——函数(function),有了函数,程序才是程序,为什么这么说呢?因为如果没有函数语法,所有重复工作(包括类似工作)都要重复编写代码,那样就失去了编程的价值。打个比喻说:如果程序没有函数,就好像做数学题没有公式一样,每次做类似的题目的时候,都要从头去用最原始是方法进行解题,这是不可想象的。
所以说,有了函数,我们编写的程序才可以越做越大,我们才可能做出大型程序。当然,如果要做超大型程序,还需要学会对象(class)才行
在c/c++里是支持函数的,在php里也是支持函数的,不过java是纯粹的OOP架构是没有函数的
函数可以理解为一个公式,包含若干未知数(参数),未知数给了参考值,其结果(返回值)自然就得出来了,其语法如下
returnValue functionName (argument1, argument2, argument3 ... argumentN)
函数包括函数声明和函数定义两个部分,声明就是定义函数名称、参数、返回值,定义就是实现函数里程序逻辑
函数声明
函数声明的意思就是只定义函数的名称、参数、返回值,而不去编写函数里面的程序逻辑,这在c/c++里有特定的意义,c/c++编程包括 .h(头文件)和 .cpp(程序文件),函数声明写在头文件里,函数定义写在程序文件,在发布程序库的时候函数定义是编译成二进制的,只能依赖头文件里的函数声明告诉使用者函数是什么样的
函数定义
函数定义的意思就是在做好函数声明之后开始编写函数里面的程序逻辑,函数定义也包括函数名称、参数、返回值,这在c/c++和php里都是一样的
c/c++示例
定义了addCapacityToFuge,用来输出一句话,再将capacityCont加一
int addCapacityToFuge(const char* capacity, int capacityCount) {
// print
cout << "福哥会写" << capacity << "编程代码" << endl;
// count
capacityCount++;
return capacityCount;
}
int main()
{
int capacityCount;
capacityCount = 0;
capacityCount = addCapacityToFuge("C/C++", capacityCount);
capacityCount = addCapacityToFuge("Java", capacityCount);
capacityCount = addCapacityToFuge("PHP", capacityCount);
cout << "福哥会" << capacityCount << "种编程语言!" << endl;
return 0;
}
php示例
定义了addCapacityToFuge,用来输出一句话,再将capacityCont加一
注意:这里php的函数定义语法稍有不同,除了没有参数类型和返回值类型外,还需要在函数名称前面增加function关键字,这有助于php解析器的执行效率
function addCapacityToFuge($capacity, $capacityCount) {
// print
print "福哥会写" . $capacity . "编程代码\n";
// count
$capacityCount++;
return $capacityCount;
}
$capacityCount = 0;
$capacityCount = addCapacityToFuge("C/C++", $capacityCount);
$capacityCount = addCapacityToFuge("Java", $capacityCount);
$capacityCount = addCapacityToFuge("PHP", $capacityCount);
print "福哥会" . $capacityCount . "种编程语言!\n";
函数参数构成了函数的价值重要的组成部分,如果没有参数,函数所做的事情是完全不变的,有了参数就可以使函数完成类似缺又不完全相同的事情
函数参数个数
函数参数就是一个一个的变量定义,一个函数理论上可以有无限多个参数
函数参数类型
函数参数的类型和我们编程时候定义一个变量是基本一样的,每一个参数需要不同的名字,每一个参数需要给定参数类型,但是php这种弱类型语言不需要指定参数类型
函数参数传入方式
这个比较难理解,函数传入方式有两种,一种是复制传递(默认),另一种是引用传递
复制传递
复制传递是默认传递方式,就是我们传入的变量在传入函数的一瞬间会被自动克隆一份,如果参数在函数里面被修改了,不会影响调用函数程序代码里的变量的值
引用传递
引用传递和复制传递相反,就是我们传入的变量在传入函数的一瞬间不会被自动克隆,如果参数在函数里面被修改了,调用函数程序代码里的变量也会变化
函数在执行完成后可以返回一个变量给调用这个函数的代码使用,这个返回的的变量就是函数返回值
函数返回值类型
函数返回值的类型和我们编程时候定义的一个变量是基本一样的,需要给定返回值类型,但是php这种弱类型语言不需要参数类型
这个作用域比较抽象,打个比喻说:一段代码里会有很多的变量,如果把这些变量当作人的话,就是一群人在一个空场里,在这个空场里每个人都可以找到每个人,人可以被找到的范围就是这个人的作用域;函数假设是一个商场,商场大门就是调用函数的点,在空场里的人商场里是看不到的,商场里的人在空场也看不到,所以商场是另一个作用域
函数定义的作用域仅仅是函数定义里面的程序代码,它和函数调用的作用域是不通的,简单说就是:在函数调用的地方定义的变量在函数定义里面是无法使用的,反过来也是一样的,在函数定义里定义的变量在函数调用的地方也无法访问到
注意:在函数内调用另一个函数,或者调用函数自己,一样是不同的作用域
函数就是一个处理一些事情的独立程序代码,可以传入函数参数来实现类似事情的处理操作,可以通过函数返回值来讲处理结果带回到调用函数的程序使用
有了函数,我们就可以编写较为大型的程序了
https://m.tongfu.net/home/35/blog/512757.html
*请认真填写需求信息,我们会在24小时内与您取得联系。