Respuesta
Si foo
ya está definido y se evalúa como verdadera, se establece foo = foo
, es decir, que no hace nada.
Si se define foo
pero se evalúa como falsa, sería lo emergente se foo
(false
, null
, undefined
, cadena vacía, 0, NaN), pero desde alert
vuelve nada, foo
se establecerá en undefined
.
Si foo
aún no está definido, se lanzará una excepción. (Edit: En su ejemplo, foo
siempre se definirá debido a la declaración var foo
.)
Si foo
evalúa a falso (por ejemplo, falso, nulo o cero), también se evalúa el valor después del operador ||
, y muestra el valor.
El método alert
no devuelve ningún valor, por lo que foo
quedará indefinido si se evalúa como falso, de lo contrario se le asignará su propio valor.
var foo;
if (foo)
foo = foo;
else
foo = alert(foo); // probably undefined
@Hogan:> * alerta (foo); es un lvalue no un rvalue *. ¿Qué? –
@Crescent: nevermind: término C que no se aplica aquí. – Hogan
- 1. 'var foo = función ...' y 'la función foo() ...'
- 2. Foo f = Foo(); // no hay función de coincidencia para la llamada a 'Foo :: Foo (Foo)' ... ¿eh?
- 3. char * foo vs char * foo
- 4. Foo no se puede convertir a Foo
- 5. ¿Qué significa esto? int foo = foo + 4;
- 6. Referencia estándar para int foo = foo
- 7. jQuery $ each (arr, foo) contra $ (arr) .Cada (foo)
- 8. ¿La diferencia entre declarar una variable como "var $ foo" o "$ foo" en PHP?
- 9. Absoluto ("/ foo") y relativo ("../foo") nombres de archivo. ¿Cómo se llama la categoría "foo"?
- 10. ¿Hay alguna diferencia entre [& foo] {...} captura y [foo] {...} captura si 'foo' es una variable de referencia?
- 11. Diferencia entre "struct foo *" y "foo *" donde foo es una estructura?
- 12. ¿Por qué Amazon S3 no sirve automáticamente /foo/index.html cuando solicito/foo o/foo /?
- 13. Scala: 'foo def = {1}' vs 'foo def {1}'
- 14. R: apt-get install r-cran-foo vs. install.packages ("foo")
- 15. Diferencia entre clase foo y clase foo (objeto) en Python
- 16. ¿De qué sirve decir "#define FOO FOO" en C?
- 17. polimorfismo C++ ((X *) y) -> foo() vs ((X) * y) .foo()
- 18. Es Foo * f = new Foo buen código de C++
- 19. ¿Hay alguna diferencia entre "foo is None" y "foo == None"?
- 20. static_cast <int> (foo) vs. (int) foo
- 21. ¿Cuándo os.environ ['foo'] no coincide con os.getenv ('foo')?
- 22. ¿qué quiere decir FOO?
- 23. ¿Qué es "x && foo()"?
- 24. ¿Por qué no puedo decir imprimir $ somehash {$ var} {fh} "foo"?
- 25. columna PostgreSQL 'foo' no existe
- 26. ¿Qué significa __PACKAGE __-> {foo}?
- 27. ¿Por qué compila erlang: foo()?
- 28. ¿Por qué ("foo" === new String ("foo")) se evalúa como falso en JavaScript?
- 29. ¿Por qué "foo" .toString() no es lo mismo que toString.call ("foo")?
- 30. nuevo Foo {A = 1,} ¿Error o característica?
¿No está asignado? Es un rvalue – Hogan
@Hogan: Sí, está asignado. – Guffa
'alerta (foo)' devuelve indefinido. –