使用默认运算符时发生Javascript引用错误

使用默认运算符时发生Javascript引用错误,javascript,Javascript,我正试图使用|操作符作为Crockford在中描述的“默认”操作符(http://www.crockford.com/javascript/survey.html): |运算符通常称为逻辑or。它也可以称为默认值。如果第一个操作数为false、null、undefined”(“空字符串”)或数字0,则返回第二个操作数。否则,它将返回第一个操作数。这为指定默认值提供了一种方便的方法: value = v || 10; /* Use the value of v, but if v doesn't

我正试图使用
|
操作符作为Crockford在中描述的“默认”操作符(http://www.crockford.com/javascript/survey.html):

|
运算符通常称为逻辑or。它也可以称为默认值。如果第一个操作数为false、null、undefined”(“空字符串”)或数字0,则返回第二个操作数。否则,它将返回第一个操作数。这为指定默认值提供了一种方便的方法:

value = v || 10; /* Use the value of v, but if v
doesn't have a value, use 10 instead. */
当我在firebug javascript控制台中输入它时,它会报告一个错误:ReferenceError:v未定义,并且不会继续将值设置为10


这是预期的行为吗?

是的。如果您没有告诉javascript“v”是一个变量,它会抱怨。要更正此问题,可以执行以下两种操作之一:

var v;
value = v || 10;


谢谢第二个选择看起来像我要做的。
value = window.v || 10;