javascript - 求解几道面试题,js的
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-19 10:18:41
[JavaScript讨论组]
`(function(x){
  delete x;
  return x;
})(1)//为什么返回1,不是delete了吗?`
var x = 1;
if(function f(){}){
  x += typeof f;
}
x;//为嘛返回 1underfind?
曾经蜡笔没有小新
曾经蜡笔没有小新

全部回复(3)
漂亮男人
第一个,变量是不能删除的吧  ;
第二个,function f(){}做了隐形转换,相当于if(Boolean(function f(){})){};所以f的函数声明是在Boolean的函数作用域里的,并不是全局
ringa_lee

delete删除的是属性不是变量。
转换为boolean值,楼上说的很对+1。

黄舟

if(function f(){}){
alert(typeof f); //undefined
}

&

function f(){}
alert(typeof f); //function

作用域不同,前者不在全局作用域中,所以取不到

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号