我正在写一个使用switch语句的脚本。当我声明变量时,它们具有默认的布尔值true,是正确的?那么,在switch语句中使用它并不那么重要。默认情况下,JavaScript变量的布尔值是什么?
这里是JavaScript,我有:http://codepen.io/anon/pen/IDLqd/
基本上,我试图做的是问,他们更喜欢基于那进入一个window.prompt的数据是什么类型的列表样式用户() 方法。如果他们输入1,2或3,他们将根据提示中的指示获得一个列表。但是,如果它们没有输入一个有效的整数,则变量validInput的布尔值为false。
从这里开始,运行if语句来检查validInput变量是否具有布尔值true,如果是,则将多个变量的值输出到屏幕,如果不是,则输出文本说“无效的选择“。
为什么代码将if语句中的validInput值识别为false?如果在提示窗口中输入了不同的值,则只赋值false。为了使这个程序正常运行,我必须在每个开关情况下显式地将validInput值定义为true。
这是为什么?有人可以解释吗?
谢谢! Aaron
已声明但未设置的变量默认为'undefined',即“falsey”,即'undefined == false','undefined!= true',但实际上不是false,即undefined!== false, 'undefined!== true'。 – Dave
是不是因为在你的情况下执行将转到默认设置validinput为false,因为它没有事先初始化? – pj013
@Dave:我明白你在说什么,所以从某种意义上说,它可以被认为是空的,null被认为是“假的”。 undefined和null有什么区别?在用于诸如我所拥有的语句之前,总是定义变量总是一个好习惯吗? –