`

Javascript基础,变量提升(hosting)

js 
阅读更多


http://www.cnblogs.com/TonnyGu/archive/2011/09/29/2195459.html


myname="global";
2 function fun(){
3   alert(myname);    //undefined
4   var myname="local";
5   alert(myname);    //local
6 }
7 fun();
8
9 myname="global";
10 function fun(){
11   alert(myname);    //global
12   //var myname="local";
13   //alert(myname);   
14 }
15 fun();
16
17 var myname="global";
18 function fun(){
19   alert(myname);    //global
20   myname="local";
21   //alert(myname);
22 }
23 fun();
24
25 //原因是JavaScript有变量声明提升(Hoisting)
26 //var表达式和function声明都将会提升到当前作用域的顶部
27 //PS:
28 //函数声明:function functionname (arg0, arg1, arg2) { 函数体 }
29 //函数表达式:var functionname = function (arg0, arg1, arg2) { 函数体 }
30 myname="global";
31 function fun(){
32   alert(myname);    //undefined
33   var myname="local";
34   alert(myname);    //local
35 }
36 fun();
37
38 //这个函数其实为:
39
40 myname="global";
41 function fun(){
42   var myname;       //变量声明.变量声明但未对其初始化时,这个变量为undefined;
43                     //myname被提升到当前函数作用域链的顶部
44   alert(myname);    //undefined
45   myname="local";   //变量初始化
46   alert(myname);    //local
47 }
48 fun();
49
50 //总结最佳实践:Declare All variables at the top
51 function() { 
52   var a, b, c;   //声明
53   a = 'a';         //初始化
54   b = 'b';
55   c = 'c';
56 }
分享到:
评论

相关推荐

    前端开源库-web-hosting

    综上所述,"前端开源库-web-hosting"项目涵盖了前端开发的多个重要方面,包括模板引擎、预处理器、基础Web技术以及Web托管服务。对于前端开发者来说,理解和掌握这些技术是提升开发能力和构建高效Web应用的关键。...

    Hosting-Bot:当您可以从不和谐的服务器上完成WHMCS时,为什么要使用它!

    1. **JavaScript基础**:理解变量、函数、对象、数组等基本概念,以及异步操作如Promise和async/await,这些都是编写Hosting-Bot脚本的基础。 2. **WHMCS API**:熟悉WHMCS提供的API文档,学习如何发送HTTP请求,...

    最小自托管js编译器

    通过学习和实践这样的最小自托管JS编译器,开发者可以深入理解JavaScript语言的底层工作原理,提升对代码优化、错误检测和性能调优的能力。这对于成为高级JavaScript开发者或进入编译器设计领域是非常有价值的。此外...

    warper-landing-hosting

    【warper-landing-hosting】项目是一个基于JavaScript技术构建的网页应用部署平台。这个平台的主要目的是提供一个方便快捷的方式来托管和展示着陆页(Landing Page)。从描述中可以看出,项目涉及到了环境配置、...

    hosting2

    在深入研究这个项目之前,我们需要解压`hosting2-master`文件,查看其内部结构,包括CSS文件和其他相关资源(HTML、JavaScript、图片等)。 通常,一个CSS项目会遵循一定的组织原则,例如将样式按功能或模块划分到...

    thislang:在该 javascript 子集中实现的 javascript 子集。 是的,它可以自己运行

    this-lang (thislang) 是 Javascript 子集中的 Javascript 子集的实现。 是的,它可以自己运行! 用法 所有输出都记录到控制台。 因此,要使用 thislang,您需要在浏览器中打开控制台。 单击运行按钮运行代码。 如果...

    托管2

    在JavaScript的世界里,托管服务对于前端开发者尤其重要,因为它们是发布和运行Web应用的基础。以下是一些关于JavaScript托管服务的重要知识点: 1. **静态文件托管**:JavaScript应用通常包括HTML、CSS和JS文件,...

    fe-practice-share-hosting:Web前端(实践4-3)

    4. **盒模型**:CSS盒模型是理解元素尺寸和布局的基础,包括元素的内容区域、内边距(padding)、边框(border)和外边距(margin)。掌握盒模型有助于精确控制元素的大小和位置。 5. **响应式设计**:为了适应不同...

    100个PHP[博客空间]源码打包

    9. **前端技术**:HTML、CSS、JavaScript基础,以及可能的框架如Bootstrap、jQuery等的应用。 10. **SEO优化**:元标签、URL结构、页面速度优化等。 通过研究这些源码,开发者不仅可以提升PHP编程技能,还可以学习...

    pyh 模块生成html

    pyh - User manual for the PyH library - A powerful python module to generate HTML code from a python script - Google Project Hosting_files`则可能是手册对应的资源文件,例如图片、样式表或者JavaScript,...

    react-firebase-and-hosting:一个使用实时数据库保存和列出消息的简单示例

    在Shell中添加临时环境变量 在.env添加开发环境变量 我可以使用装饰器吗? 使用AJAX请求获取数据 与API后端集成 节点 Ruby on Rails 在开发中代理API请求 配置代理后出现“无效的主机头”错误 手动配置代理 配置...

    portfolio:基于React库的个人作品集

    **JavaScript基础** JavaScript是Web开发的标准脚本语言,运行在客户端浏览器。它支持面向对象、函数式和命令式编程风格。在React项目中,JavaScript用于处理逻辑和状态管理,通过props(属性)和state(状态)来...

    [IronRuby] C# 4.0调用ActiveRecord

    这意味着开发者不仅可以在.NET上运行IronRuby,还可以运行如JavaScript,Python等其他动态语言。 知识点十:DLR实现者指南 DLR实现指南提供了关于如何创建DLR宿主的详细信息。这包括需求规范、API参考,以及如何...

    charter-spectrum-fe-challenge

    1. **JavaScript基础**:包括变量、数据类型、控制流、函数、对象和原型链等核心概念。 2. **ES6+特性**:箭头函数、模板字符串、Promise、async/await等现代JavaScript语法。 3. **前端框架**:如React或Vue,...

    KPwikiJsTest:测试hostinh

    标题“KPwikiJsTest:测试hosting”暗示我们即将探讨的是与JavaScript测试和Web托管相关的主题。在IT行业中,测试是确保代码质量的关键步骤,而hosting则涉及到将应用程序部署到互联网上以便用户访问。在这个场景中,...

    herokuhosting

    Heroku Hosting 是一个流行的云平台,它允许开发者部署和管理基于Web的应用程序,尤其是那些使用JavaScript框架构建的应用。Heroku支持多种编程语言,包括Node.js,这是JavaScript的一个运行时环境,使得JavaScript...

    vip:VIP Go JavaScript 库和 CLI

    如果您希望选择退出此数据收集,您可以通过DO_NOT_TRACK环境变量来实现。 您可以在 shell 配置中导出它或在命令行中指定它(例如DO_NOT_TRACK=1 vip app list )。变更日志2.0.10(2021 年 6 月 21 日) 添加媒体...

    Full-Stack-Development-Practice:从udemy课程开始进行全栈开发

    学习JavaScript意味着了解变量、数据类型、函数、事件处理和DOM操作。 4. **Backend Technologies**:全栈开发者需要掌握至少一种后端语言,如Node.js(基于JavaScript)、Python(Django或Flask框架)、Ruby(Ruby...

    wildboyscampoutwebsite:客户想要一个网站来托管其有关慈善活动和筹款活动的信息

    JavaScript作为Web开发的基础语言,用于实现页面的动态交互。在本项目中,JavaScript与React结合使用,提供了丰富的用户交互功能,比如表单验证、事件处理等。 这个项目的文件名“wildboyscampoutwebsite-main”...

Global site tag (gtag.js) - Google Analytics