我有一个js变量,它是通过php在php页面上生成的:
<script type="text/javascript">
var shadeData = <?php echo $formattedShadeData; ?>;
</script>
此变量仅在一个页面上定义,因此我希望防止其他页面在加载时抛出错误。在我的一个javascript文件中,如果尚未定义变量,我想停止运行代码,所以我一直在尝试:
var shadeData = shadeData || null;
if(!shadeData){ return false; }
然而,这不起作用,我仍然没有定义shadeData。这些行下面的代码中有几个函数使用变量,但理想情况下,当第二行返回false时,这不会运行。
答案 0 :(得分:1)
您无法在JavaScript程序的全局/顶级范围内使用return
。
经过轻微调整后,您的想法应该可以正常运行:将所有代码包装在IIFE中。
// If shadeData is already defined and falsey, this is unnecessary. But included for clarity.
var shadeData = shadeData || null;
(function () {
if (!shadeData) {
return;
}
// From now on within this function, shadeData is truthy.
}());
// shadeData is not necessarily truthy down here.
console.log('shadeData:', shadeData);
在现实世界中,这通常是通过有条件调用的主入口函数(通常名为init
)来完成的。
function init() {
// I am only run when shadeData is truthy.
}
if (shadeData) {
init();
}