JavaScript作用域

//  1
//  1-1
var color ="blue";
function getColor(){
  console.log(color);//undefined
  var color = "yellow";
  console.log(color);//yellow
}
getColor();
//  1-2
var color ="blue";
function getColor(color){
  console.log(color);//blue
  var color = "yellow";
  console.log(color);//yellow
}
getColor();
//  1-3
var color ="blue";
function getColor(){
  console.log(color);//blue
}
getColor();
//  1-4
var a = 10;
function aaa(){
    console.log(a);
}
function bbb(){
   var a = 20;
   aaa();
}
bbb();  //10!!!!不是20


//  2
//  2-1
var color;
console.log(typeof color);//undefined
//  2-2
var color;
function color(){};
console.log(typeof color); //function
//  2-3
var color = 123;
function color(){ console.log("...")};
console.log(typeof color);//number

//  3 普通定义函数,调用在前的话,会将定义的函数提前,但不会将匿名函数提前
//  3-1
getName() //function
var getName = function () {
  console.log('niming funtion')
}
function getName() {
  console.log('function')
}
//  3-2
getName() //function
var getName = function () {
  console.log('niming function')
}
function getName() {
  console.log('function')
}
getName() //niming function

//  4 不同<script>块中的函数互不影响
<script>
  getName()
  var getName = function () {
    alert('niming')
  }
<script>
<script>
  function getName() {
    alert('function')
  }
<script>
 
//代码执行报错:TypeError: getName is not a function
//因为第一个<script>块中getName()函数未定义,匿名函数又不会向上提升
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 随手刷SF,看到一篇译文《你想知道的关于 JavaScript 作用域的一切》,着实写得不错,推荐给各位小伙伴看看...
    yahreso阅读 1,059评论 0 0
  • 简介 JavaScript 有个特性称为作用域。尽管对于很多开发新手来说,作用域的概念不容易理解,我会尽可能地从最...
    MapleLeafFall阅读 2,047评论 0 0
  • 作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作...
    Castiel_Z阅读 1,612评论 0 0
  • 1、响应式设计不仅用在移动网站,在PC端也有不同屏幕的适配,而且移动端和PC端可以只使用一套代码,这就是全平台的响...
    他大舅啊阅读 3,841评论 0 2
  • 11月5日应邀再次开启创业之旅。这次来已经没啥所谓的“创业激情”了,只感到一份厚重的责任。 以往觉得自己是不能和“...
    染净依阅读 1,755评论 0 0