视频中老师原本在INDEX.HTML 中是第一个而在SCRIPT.JS中又变成了第二个?
event||window.event event?event:window.event; 等价吗? 为啥可这么写呢?
event||window.event event?event:window.event; 等价吗? 为啥可这么写呢?
2017-03-05
一、针对三元运算符的回答:
① 三元运算表达式:条件 ? 结果1 : 结果2; (这个整体为一个表达式,即整体有一个隐含的值)
如果 条件 为 true, 整个表达式为 结果1, 否则, 整个表达式为 结果2 。
② 在 JS 中变量是可以当作表达式来计算的,有值代表 true,null 为false。
③ var e = event ? event : window.event; (为了避免混淆,将变量 event用 e代替)
步骤: 1. 计算表达式 event ? event : window.event; 的值, 如果 event 有值, 表达式的值为 event 的值,否则表达式的值为 window.event 的值。
2. 将表达式的值赋值给变量 e 。
④ return event ? event : window.event;
步骤: 1. 计算表达式的值。 2. 将表达式的值return。
二、逻辑或 || 表达式的 回答:
① 逻辑或 || 表达式: 条件1 || 条件2
只有 条件1 和 条件2 的值同时为 null,整个表达式的值为 null,否则,表达式为 非null的条件的值。
② var ele=event.target||event.srcElement; 在本题中只有一个非null。
步骤: 1. 计算 表达式的值。 2. 将表达式的值赋值给 ele。
③ return event.target||event.srcElement;
步骤: 1. 计算 表达式的值。 2. 将表达式的值return。
举报