Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何测试茉莉花中未声明的变量?_Javascript_Jasmine - Fatal编程技术网

Javascript 如何测试茉莉花中未声明的变量?

Javascript 如何测试茉莉花中未声明的变量?,javascript,jasmine,Javascript,Jasmine,此规范失败:ReferenceError:未定义总计 如何测试未声明的变量?jasmine中的测试与检查正常未定义变量的测试相同: it("is undefined", function() { expect(total).toBe(undefined); }); 您可以将其与茉莉花一起使用,如: (typeof total === 'undefined') 返回字符串,如果未定义其操作数,则具有不抛出的特殊行为 请注意jasmine,当您可以安全地访问对象时(通常是当它是成员并且您

此规范失败:
ReferenceError:未定义总计


如何测试未声明的变量?

jasmine中的测试与检查正常未定义变量的测试相同:

it("is undefined", function() {
    expect(total).toBe(undefined);
});
您可以将其与茉莉花一起使用,如:

(typeof total === 'undefined')
返回字符串,如果未定义其操作数,则具有不抛出的特殊行为

请注意jasmine,当您可以安全地访问对象时(通常是当它是成员并且您知道父对象存在时),首选jasmine。根据测试的设置方式,如果您感兴趣的变量是
窗口
或某些其他范围的成员,则可以使用这些匹配器:

expect(typeof total).toBe('undefined');

如果您可以使用这些,您应该。

好的,可以。有没有什么特别的理由不把括号和“typeof”连用?我认为Javascript需要参数来调用函数。typeof不是函数。是接线员。有关更多详细信息,请参见此处:
typeof
不是一个函数,而是一个专门的运算符。您没有将parens与
a+b
-a
一起使用,因此
typeof
利用了该语法。是否有任何特殊原因使得
this.total
可以使用
toBeDefined()
但是
total
不能?因为
this.total
如果
this
没有定义属性
total
,则返回
undefined
,但是如果当前范围没有定义变量
total
,则
total
将抛出(特别是在严格模式下)。
expect(this.total).toBeDefined();