`

<<javascript the good parts>> variable scope

 
阅读更多

Javascript does not have block scope, but it does have function scope. A variable defined anywhere within a function is visible everywhere within the function.

 

function foo(){
  console.log("a:",a);//variable a is visible here but it is still undefined
  console.log("f:",f);//variable f is visible here but it is still undefined
  var a=1;
  var f=function(){
    console.log("f");
  }
}

foo();

 

So, it is best to declare all of the variables used in a function at the top of the function body. If we check the angularjs source code, we find it does exactly the same way.

// at the top, it declares all the global variables
var $$scope           = '$scope',
    $boolean          = 'boolean',
    $console          = 'console',
    $length           = 'length',
    $name             = 'name',
    $object           = 'object',
...

// in each function, it also declare the variables at the top 
function forEach(obj, iterator, context) {
  var key;
  if (obj) {...
...
 

 

 

分享到:
评论

相关推荐

    JavaScript the good parts 经典课程

    "JavaScript the Good Parts"是一本由Douglas Crockford编写的经典书籍,它深入浅出地讲解了JavaScript的精华部分,帮助开发者理解并掌握这门语言的精髓。在这个经典课程中,我们将探讨以下几个关键知识点: 1. **...

    JavaScript语言精粹.修订版 Javascript:The Good Parts 中英 pdf

    修订版",即《Javascript: The Good Parts》,是由知名的计算机科学家Douglas Crockford所著,这本书深入探讨了JavaScript的核心概念和最佳实践,为开发者提供了宝贵的洞察力。 书中的内容主要分为以下几个部分: ...

    网页教程代码参考

    &lt;br&gt;HTML&lt;br&gt;HTML教程&lt;br&gt;&lt;br&gt;HTML代码示例&lt;br&gt;&lt;br&gt;HTML参考(Reference)&lt;br&gt;&lt;br&gt;HTML知识库&lt;br&gt;&lt;br&gt;CSS&lt;br&gt;CSS教程&lt;br&gt;&lt;br&gt;CSS代码示例&lt;br&gt;&lt;br&gt;CSS参考(Reference)&lt;br&gt;&lt;br&gt;Javascript&lt;br&gt;Javascript教程&lt;br&gt;&lt;br&gt;...

    JavaScript the good parts

    《JavaScript the Good Parts》是Douglas Crockford撰写的一本权威书籍,专注于揭示JavaScript语言中优秀的部分,旨在帮助开发者在编程实践中避开语言的缺陷,提高代码的可读性、可靠性和可维护性。这本书是在...

    JavaScript: The Good Parts

    《JavaScript: The Good Parts》&lt;br&gt;by Douglas Crockford&lt;br&gt;Publisher: O'Reilly &lt;br&gt;Pub Date: May 2, 2008 &lt;br&gt;Print ISBN-13: 978-0-596-51774-8 &lt;br&gt;Pages: 170

    元旦倒计时JavaScript代码

    &lt;div class="djs"&gt; &lt;p&gt;元旦倒计时:&lt;/p&gt; &lt;div class="time"&gt; &lt;span class="day"&gt;0&lt;/span&gt; &lt;span&gt;天&lt;/span&gt; &lt;span class="hour"&gt;1&lt;/span&gt; &lt;span&gt;小时&lt;/span&gt; &lt;span class="minute"&gt;2&lt;/span&gt; &lt;span&gt;分&lt;/span&gt; ...

    HTML&JavaScript经典PPT 讲的都是重点

    &lt;SCRIPT language="JavaScript" &gt; function compute(op) { var num1,num2; num1=parseFloat(document.myform.num1.value); num2=parseFloat(document.myform.num2.value); if (op=="+") document.myform....

    javascript程序设计

    &lt;title&gt;一段简单的JavaScript代码&lt;/title&gt; &lt;script language="javascript"&gt; window.alert("欢迎光临本网站"); &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;h3&gt;这是一段简单的JavaScript代码。&lt;/h3&gt; &lt;/body&gt; &lt;/html&gt; ``` - **知识点**...

    隔行变色和鼠标滑过变色

    &lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt; ``` 在这段代码中,通过`...

    JSP图书管理系统

    &lt;script language="JavaScript"&gt;var when=new Date(); document.write("&lt;h4&gt;"); document.write(when.getYear()+"年"); document.write((when.getMonth()+1)+"月"); document.write(when.getDate()+...

    jQuery横向二级滑动导航菜单

    &lt;script language="javascript" type="text/javascript" src="js/lrtk.js"&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;!-- 代码 开始 --&gt; &lt;div id="menu"&gt; &lt;ul id="nav"&gt; &lt;li class="mainlevel"&gt;&lt;span class="note"&gt;首页&lt;/span&gt;&lt;/...

    手机信息的增删改查,分页查询

    手机信息的增删改查,分页查询。 &lt;%@ page language="java" import="java.util.*" pageEncoding=...&lt;script type="text/javascript"&gt; &lt;!-- function delok() { return confirm("确定要删除吗?"); } //--&gt; &lt;/script&gt;

    jsf12-maven.zip

    &lt;scope&gt;compile&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;javax.faces&lt;/groupId&gt; &lt;artifactId&gt;jsf-impl&lt;/artifactId&gt; &lt;version&gt;1.2_13&lt;/version&gt; &lt;scope&gt;runtime&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; ...

    java实用程序设计100例原代码和素材下载

    &lt;p&gt;&lt;span class="javascript" id="text4536094" style="FONT-SIZE: 12px"&gt;&lt;font face="Verdana"&gt;目录&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span class="javascript" style="FONT-SIZE: 12px"&gt;&lt;font face="Verdana"&gt;1 图形用户界面...

    html书写规范

    &lt;div&gt;Esprima serves as an important &lt;span class="strong"&gt;building block&lt;/span&gt; for some JavaScript language tools.&lt;/div&gt; ``` 以上就是关于HTML书写规范的主要知识点,遵循这些规范能够帮助开发者编写出高...

    创建模态网页对话框(Very Good)!

    }&lt;/script&gt;&lt;/head&gt;&lt;body&gt;&lt;form name=frm_test id=frm_test&gt;&lt;input type=button value=Click onclick=test()&gt;&lt;/form&gt;&lt;/body&gt;&lt;/html&gt;The code for the modal.html which will be called when u click the &quot;...

    gwt-highcharts-lib:GWT 项目的 Highcharts 库

    &lt; scope&gt;provided&lt;/ scope&gt; &lt;/ dependency&gt; &lt; dependency&gt; &lt; groupId&gt;com.bytebybyte.gwt&lt;/ groupId&gt; &lt; artifactId&gt;highcharts-lib&lt;/ artifactId&gt; &lt; version&gt;4.0.4&lt;/ version&gt; &lt; scope&gt;provided&lt;/ scope&gt; &lt;/...

Global site tag (gtag.js) - Google Analytics