区别是:undefined是Javascript中的语言类型之一,而undeclared是Javascript中的一种语法错误。undefined: 已申明,未赋值。尝试访问一个undefined 的变量时,浏览器不会报错并会返回undefined。undeclared: 未声明,未赋值。尝试访问一个undeclared的变量时,浏览器会报错,JS执行会中断。
undefined是Javascript中的语言类型之一,而undeclared是Javascript中的一种语法错误。
JS中的undefined可以表示“空”,另一个可以表示“空”的为null。JS中的undefined是一个值为undefined的类型。
undefined: 已申明,未赋值。
尝试访问一个undefined 的变量时,浏览器不会报错并会返回undefined。
undeclared: 未声明,未赋值。
尝试访问一个undeclared的变量时,浏览器会报错,JS执行会中断。
直接上码:
当我们申明一个变量:
var foo; //此时foo的值就是undefined
而如下代码却也可以在浏览器里无错执行:
b = “foo” ; //
alert(window.b); // 输出”foo”
源于JS的语言解析特性,当变量没有使用var显式声明并且在使用前已经赋值,存储这个值的变量会被隐性声明为全局变量。因此b现在变成了window对象的一个属性,所以访问它并不会报错。
所以,当我们尝试执行如下代码时:
alert(a);
将会输出Uncaught ReferenceError: a is not defined.
延伸阅读:
什么是JavaScript?
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。
JavaScript的标准是ECMAScript 。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了ECMAScript的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES2015。
文章标题:JavaScript 中 undefined 与 undeclared 之间的区别是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38601