下面我创建了一个简单的测试用例,它表明当img标签的src设置为不同的dataUrls时,它会泄漏内存.看起来在src更改为其他内容后,图像数据永远不会被卸载.
<!DOCTYPE html>
<html>
<head>
<title>Leak Test</title>
<script type="text/javascript">
canvas = null;
context = null;
image = null;
onLoad = function(event)
{
canvas = document.getElementById('canvas');
context = canvas.getContext('2d');
image = document.getElementById('image');
setTimeout(processImage, 1000);
}
processImage = function(event)
{
var imageData = null;
for (var i = 0; i < 500; i ++)
{
context.fillStyle = "rgba(" + Math.floor(Math.random() * 256) + "," + Math.floor(Math.random() * 256) + "," + Math.floor(Math.random() * 256) + "," + Math.random() +")";
context.fillRect(0, 0, canvas.width, …Run Code Online (Sandbox Code Playgroud) 鉴于以下
/**
* @param {{bar?: string|null}} [param0]
*/
const foo = ({bar = null} = {}) => bar;
Run Code Online (Sandbox Code Playgroud)
Typescript 3.7.2 报告
var bar: string | null
Binding element 'bar' implicitly has an 'any' type.ts(7031)
JavaScript 代码按照我想要的方式工作,但是我如何编写 jsdoc 提示,以便 TypeScript 理解解构bar变量string|null不是any?
我正在尝试测试类的成员函数的相等性。这是一个小样本:
void main() {
var foo = new Foo();
if (foo.someFunc == foo.someFunc)
print("foo.someFunc == foo.someFunc");
else
print("foo.someFunc != foo.someFunc");
}
class Foo {
someFunc() {
}
}
Run Code Online (Sandbox Code Playgroud)
这将打印“foo.someFunc!= foo.someFunc”。这里的相等运算符应该测试这些函数是否是内存中的同一对象(看起来它们应该是。)我也尝试使用相同的(foo.someFunc,foo.someFunc),但得到了相同的结果。为什么在这种情况下相等运算符不返回 true?
javascript ×2
canvas ×1
checkjs ×1
dart ×1
dom ×1
equality ×1
function ×1
html5 ×1
jsdoc ×1
member ×1
memory-leaks ×1
typescript ×1