码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript高级程序设计(第2版) 笔记2

时间:2015-11-26 13:07:38      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

  笔记1中摘录了一些关于JavaScript的简介、组成、基础类型说明等无关精要的知识点,但个人还是觉得这些基础的东西必须了解,毕竟有总比没有好。

  而今天也就来说说有时会让初学者疑惑的一些问题,比如JavaScript的变量、作用域和内存等问题,特别需要注意的就是作用域(C#、Java等高级语言开发者你们懂得!),不懂的时候头大是在所难免滴!

  不过作为一名开发者(程序猿),遇到这些头大的问题时,只能说明自己还不算“精通”。

(四)变量、作用域和内存问题

技术分享

技术分享

技术分享

技术分享

技术分享

1.  全局作用域(Global Scope)

  在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域:

  (1)最外层函数和在最外层函数外面定义的变量拥有全局作用域,例如:

var Name="张三";
function doSomething(){
    var newName="李四";
    function innerSay(){
        alert(newName);
    }
    innerSay();
}
alert(Name); //张三
alert(newName); //脚本错误
doSomething(); //李四
innerSay() //脚本错误 

  (2)所有未定义直接赋值的变量自动声明为拥有全局作用域

function doSomething(){
var Name="张三"; newName="李四"; alert(Name); } doSomething(); //张三 alert(newName); //李四 alert(Name); //脚本错误

变量blogName拥有全局作用域,而authorName在函数外部无法访问到。

  (3)所有window对象的属性拥有全局作用域

  一般情况下,window对象的内置属性都拥有全局作用域,例如window.name、window.location、window.top等等。

  1.  局部作用域(Local Scope)  

  和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数内部,所有在一些地方也会看到有人把这种作用域称为函数作用域,例如下列代码中的blogName和函数innerSay都只拥有局部作用域。

function doSomething(){
    var newName="李四";
    function innerSay(){
        alert(newName);
    }
    innerSay();
}
alert(newName); //脚本错误
innerSay(); //脚本错误

 

技术分享

  今天主要就是作用域的一些了解,可能有点乱...... 

  

JavaScript高级程序设计(第2版) 笔记2

标签:

原文地址:http://www.cnblogs.com/zhanghaomars/p/4997173.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!