zoukankan      html  css  js  c++  java
  • 你不知道的 JavaScript 系列中( 3 ) - typeof Undeclared

    该安全防范机制对在浏览器中运行的 JavaScript 代码来说还是很有帮助的
    检查全局变量是否已被声明
    在程序中使用全局变量 DEBUG 作为调试模式的开关。在输出调试信息到控制台之前,检查变量是否已被声明。顶层的全局变量声明 var DEBUG = true 只在 debug.js 文件中才有,而该文件只在开发和测试时才被加载到浏览器,在生产环境中不予加载。问题是如在程序中检查全局变量 DEBUG 才不会出现 ReferenceError 错误。这时 typeof 的安全防范机制就成了我们的好帮手
    // 这样会抛出错误
    if(DEBUG){
      console.log('Debugging is starting')
    }
    
    // 这样是安全的
    if(typeof DEBUG !== 'undefined') {
      console.log('Debugging is starting')
    }
    这不仅对用户定义对变量有用,对内建的 API 也有帮助
    if(typeof atob === 'undefined'){
      atob = function(){/***/}
    }
    typeof 的安全防范机制对于非全局变量也很管用
    如果想让别人在他们的程序或者模块中复制粘贴你的代码,就需要检查你用到的变量是否已经在宿主程序中定义过
    (function() {
      function FeatureXYZ() {}
     
      function doSomethingColl(){
        var helper = (typeof FeatureXYZ !== 'undefined') ? FeatureXYZ : function() {}
      }
    
      doSomethingColl();
    })()
  • 相关阅读:
    CD4051
    sbit和sfr的定义
    EEPROM与FLASH的区别
    九LWIP学习笔记之最后的战役
    八LWIP学习笔记之用户编程接口(NETCONN)
    七LWIP学习笔记之传输控制协议(TCP)
    六LWIP学习笔记之用户数据报协议(UDP)
    java实现二叉查找树
    线程的锁对象
    MAP
  • 原文地址:https://www.cnblogs.com/wzndkj/p/12834152.html
Copyright © 2011-2022 走看看