1. javascript 中实现一个类列表中选择
var content = {"@":"player", "#":"wall", "0":"boulder", "*":"exit", " ":"empty"}[character];
上面的代码会根据 character 的输入从 {*} 中选择对应的全称(绿色单词)返回给 content 变量。
2. 三目表达式
return this.bouldersToGo + " boulder" + (this.bouldersToGo == 1 ? "":"s" ) + " to go."
根据 this.bouldersToGo 是否等于一返回 * boulder to go. 或 * boulders to go.
3. 自动类型转换
“===” 用于判断是否精确相等,包括类型;“==” 用于判断是否自动类型转换后相等。只有 0, NaN 和空字符串转化成 false,其他所有的值都会转化成 true 。
4. “&&” 和 “||”
a. 优先级:“||” 最低,其次是 “&&”,然后是比较运算符(>、== 等),最后是其他的运算符。
b. “||” 的真正工作过程:首先检查左边的值,如果能将该值转化成布尔类型,并且值为 true,就返回左边的值;否则返回右边的值。
“&&” 与 “||” 相似,其工作过程:当左边的值转换的布尔值是 false 时,返回该值;否则返回右边的值。
小应用:
var input = prompt("what is your name?", "Kilgore Trout");
print("well hello" + (input || "dear"));
上面的代码,如果用户没有输入名字,而是单击了取消或是关闭了对话框,变量 input 将会得到 null 或者 “”。这两个值转化布尔值的过程中都会返回 false,表达式 input || “dear” 可表示变量 input 的值或者字符串 “dear”。