架构爱好者
学习交流中心

判断JS全局变量是否存在

if (typeof localStorage !== 'undefined') {
  // 此时访问localStorage不会出现引用错误
}

或者

if ('localStorage' in self) { // 浏览器端全局处window/this/self三者彼此全等
  // 此时访问 localStorage 绝对不会出现引用错误
}

注意二者的区别:

var a // 或 var a = undefined
'a' in self // true
typeof a // 'undefined'
  • var a = undefined或者var a相当于是给window对象添加了a属性,但是未赋值,即window.a === undefined为true
  • typeof a就是返回其变量类型,未赋值或者声明类型为undefined的变量,其类型就是undefined
未经允许不得转载:技术杂烩 » 判断JS全局变量是否存在