undefined和is not defined一样吗?
undefined和is not defined,字面意思看来没什么两样,不都是未定义吗? 在JavaScript中,可并非如此。 undefined定义如下: undefined是javascript的一种 基本数据类型,变量未赋值 或者 函数没有返回值时返回。 xx is not defined: xxx is not defined是一种 错误类型 ,其完整形式是: Uncaught ReferenceError: xxx is not defined (未捕获的引用错误),对象 表明一个 不存在的变量 被引用 ,即:当你尝试引用一个 未被定义 的变量时,将会抛出一个 ReferenceError 。 由此可见:undefined和is not defined的本质区别在于:变量 是否被定义 。 接下来举个栗子把作用域和变量定义及未被定义说道说道。 涉及: 局部变量,全局变量,作用域 前两天加了一个群,群主分享了一道小测试,恰巧让我有机会重新思考文章开头提到的问题。 打印结果依次为:undefined-----30-----b is not defined 先分析c:30 ES5中,作用域分为全局作用域和函数作用域,c君未声明,直接赋值,即赋予了其全局光环,所以即使它囿于函数fn 范围内,但是依然可以跳脱出函数作用域的禁锢,自由活动,无论在哪都可打印出c君的值; 一句话