Safari浏览器中的变量名为name时的问题

不清楚这算不算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>

现在还没有评论

留下您的脚印