不清楚这算不算bug,当name赋值为undefined时,使用typeof检查会显示string。其他引擎的浏览器都理解为空,可能是Safari中JS引擎自身的原因,不过Safari也只是认为名称为name的变量为string,其他名称的变量会正常理解为空。可以避免使用name作为变量名,其他的具体细节有空研究。代码如下: <script type="text/javascript"> var value = undefined; if (value) { document.write(typeof value + '<br />'); } // WebKit引擎中位string var name = undefined; if (name) { document.write(typeof name + '<br />'); } document.write('value = ' + value, '<br />', ' name = ' + name, '<br />'); </script> 阅读更多