抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

就在前几天,发生了件令我十分头疼的事情。我搭建的 p 站反代服务被人恶意调用,在国内请求了百万张 R18 图片,险些造成严重的后果,不过还好我及时进行了处理。

正当我松了口气,准备来张涩图奖励下自己的时候,机器人却一直提示图片请求失败。进首页一看,用了快 3 年的 API 因为作者被爬虫抓烦了,决定停止服务。这下心情更不好了.jpg

在上个月,我更改了已使用近 9 年的网名,还顺便换了一个新邮箱(感觉自己萌萌哒),这本应该是一件值得开心的事才对…

但是直到今天,我才突然发现,我的 Github 墙居然不绿了!

在 Java 中,我们可以通过 getStackTrace() 来获取调用栈信息。若是 PHP 就更简单了,直接调用 debug_backtrace() 函数就可以打印出各类数据。

可是,在 JavaScript 中的表现又如何?说到底,作为一门不依赖于操作系统的脚本语言,究竟能不能主动获取到堆栈的相关信息?

在 Javascript 里,所有的数据类型都是「对象」(object),这一点与 Java 非常相似,所以很多人都会误以为 JavaScript 是一门面向对象的语言。

但从严格意义上来讲,Javascript 并不是一门面向对象语言,而是基于对象,也可以说是基于原型。Javascript 并没有「类」(class) 的概念,也没有提供像抽象、继承、重载等有关面向对象语言的许多特性。那么,Javascript 是如何通过 object 来实现 class 类似表现的?

如果你使用过 Swift 或者 C#,那么一定对 var 非常熟悉。它是 variable 或者是 variation 的简写,在编程语言中多用于定义变量的关键字,在一些操作系统中也能见到它的身影。

JavaScript 中也可以使用 var 来声明变量,不仅限于此,还有 letconst 共三种方式创建变量。而如今却很少在 JS 中见到 var 的身影,这又是为什么?

在 JavaScript 中,生成实例对象有着 new functionnew class 两种写法。

尽管我们知道,传统 function 构造函数是 ES5 中的写法,而 class 则是在 ES6 新提出的关键字,那么这两种写法到底有着什么样的区别?

众所周知,Pixiv 在大陆被墙,并且图片服务器域名 i.pximg.net 有盗链保护,只要 Referer 不是来自 Pixiv 的请求都会返回 403。那么,如何才能在大陆地区直接访问图片资源?