标签:src 作用域 提升 无法 声明变量 运行机制 define .com 变量赋值
根据javascript的运行机制和javascript没有块级作用域这个特点,可以得出,变量会声明提升移至作用域 scope (全局域或者当前函数作用域) 顶部的。
console.log(a); // undefined var a ="Hi"; 相当于 var a; // 变量提升到全局作用域 console.log(a); // 已声明变量a,但未初始化,固为undefined a="Hi";
var name = "boy"; (function () { if (typeof name == ‘undefined‘) { var name = ‘girl‘; console.log(‘Hi,‘ + name); } else { console.log(‘Hi,‘ + name); } })();// 控制台输出Hi,girl 相当于 var name = "boy"; (function () { var name; //变量提升到当前函数作用域 if (typeof name == ‘undefined‘) { name = ‘girl‘; console.log(‘Hi,‘ + name); } else { console.log(‘Hi,‘ + name); } })();
undefined
表达的含义有三种情况:
对这三种情况进行归纳,undefined 可以如下总结:
一个 未定义
(not defined) 的变量是 完全没有任何声明 的变量。这样的变量在使用时会直接抛出致命错误。但是,如果使用 typeof 来判断这样的变量,不但不会出错,而且竟然会返回 undefined
,这使得无法使用 typeof 来区分这两种情况。
标签:src 作用域 提升 无法 声明变量 运行机制 define .com 变量赋值
原文地址:http://www.cnblogs.com/ch-n/p/6842881.html