Javascript中函数及变量定义的提升
- <html>
- <head>
- <title>函数提升</title>
- <script language="javascript" type="text/javascript">
- //在全局对象中声明两个全局函数,反模式
- function foo()
- {
- alert("global foo");
- }
- function bar()
- {
- alert("global bar");
- }
- //定义全局变量
- var v = "global var";
- function hoistMe()
- {
- alert(typeof foo); //function
- alert(typeof bar); //undefined
- alert(v); //undefined
- //为什么bar函数和变量v是未定义而不是全局变量中定义的相应的函数变量呢?
- //因为函数里面定义了同名的函数和变量,无论在函数的任何位置定义这些函数和
- //和变量,它们都将被提升到函数的最顶部。
- foo(); //local foo
- bar(); //报错,缺少对象
- //函数声明,变量foo以及其实现被提升到hoistMe函数顶部
- function foo()
- {
- alert("local foo");
- }
- //函数表达式,仅变量bar被提升到函数顶部,实现没有被提升
- var bar = function()
- {
- alert("local bar");
- };
- //定义局部变量
- var v = "local";
- }
- (function()
- {
- hoistMe();
- })();
- //函数表达式和变量表达式只是其声明被提升,函数声明是函数的声明和实现都被提升。
- /**由于函数提升的效果,hoistMe方法相当于
- function hoistMe()
- {
- //函数声明,变量foo以及其实现被提升到hoistMe函数顶部
- function foo()
- {
- alert("local foo");
- }
- //函数表达式,仅变量bar被提升到函数顶部,实现没有被提升(同变量提升)
- var bar = undefined;
- //变量声明被提升
- var v = undefined;
- alert(typeof foo); //function
- alert(typeof bar); //undefined
- foo(); //local foo
- bar(); //报错,缺少对象
- bar = function()
- {
- alert("local bar");
- };
- v = "local";
- }
- */
- </script>
- </head>
- <body>
- </body>
- </html>
Javascript中函数及变量定义的提升的更多相关文章
- JavaScript中函数的变量提升问题
函数的大体分三种,一种是函数的声明,一种是函数表达式(又称为函数的字面量) 1.函数的声明 => function myFn(){}; 2.函数的表达式 => var myFn = fun ...
- JavaScript中函数函数的定义与变量的声明<基础知识一>
1.JavaScript中函数的三种构造方式 a.function createFun(){ } b.var createFun=function (){ } c.var createFun=new ...
- JavaScript中var和this定义变量的区别
JavaScript中var和this定义变量的区别 在js中声明变量时可以使用var和this,但使用this的有很大一部分参考书是没有的,经过查阅相关资料总结如下: 用var和this声明变量,存 ...
- javascript中函数声明、变量声明以及变量赋值之间的关系与影响
javascript中函数声明.变量声明以及变量赋值之间的关系与影响 函数声明.变量声明以及变量赋值之间有以下几点共识: 1.所有的全局变量都是window的属性 2.函数声明被提升到范围作用域的顶端 ...
- JavaScript中函数的定义
JavaScript中函数的定义 制作人:全心全意 在JavaScript中,函数是由关键字function.函数名加一组参数以及置于大括号中需要执行的一段代码定义的.定义函数的基本语法格式如下: f ...
- JavaScript中函数的定义!
JavaScript中函数的定义! 1 自定义函数(命名函数) function fun() {}; 2 函数表达式(匿名函数) var fun = function () {}; 3 利用 new ...
- javascript中函数声明和函数表达式的区别 分类: JavaScript 2015-05-07 21:41 897人阅读 评论(0) 收藏
1.js中函数表达式的定义 表达式(expression)JavaScript中的一个短语,javascript会将其计算(evaluate)出一个结果.程序中的常量是一个最简单的表达式.变量名也是一 ...
- Javascript中函数的四种调用方式
一.Javascript中函数的几个基本知识点: 1.函数的名字只是一个指向函数的指针,所以即使在不同的执行环境,即不同对象调用这个函数,这个函数指向的仍然是同一个函数. 2.函数中有两个特殊的内部属 ...
- JavaScript中函数是不能重载原因
以前有一次写JS插件的时候,由于后台写习惯了,妄想在JS中写重载函数,可惜不能成功,原因花了一点时间记了下来 首先要理解重载的含义:函数返回值不同或者形式参数个数不同但函数名相同的函数 JavasSc ...
随机推荐
- 更强大的trim功能,过滤汉字等
第一种方法:通过php自带的函数 <?php /* trim 去除一个字符串两端空格, rtrim 是去除一个字符串右部空格, ltrim 是去除一个字符串左部空格. */ ?> < ...
- CSS3新添加的选择器
---条件选择器:--- .ccc[cusid*= value] { backgroud-color:#0094ff; } //表示使用了class="ccc"元素自定义属性cus ...
- Magento white screen or how XML can break your site?
Magento white screen or how XML can break your site? by SANDO on 02. OCT, 2012 in MAGENTO, SMALL TIP ...
- 关于前后台交互生成json区别
如何返回[object{xx:{}}]这种数组型json在服务器端return $arr[]=m;像这种都可以产生[Object { 0="9", 1="8", ...
- js判断手机访问web网站跳转到手机版
第一种:直接JS脚本 <script type="text/javascript">try {var urlhash = window.location.hash;if ...
- 还原ORACLE DUMP 的值
还原DUMP出来的数字SQL> select dump(2000,16) from dual; DUMP(2000,16)------------------Typ=2 Len=2: c2,15 ...
- Python-S13作业-day1-之登陆程序
Python-S13-day1 需求: 1.让用户输入账号密码,账号密码正确,登陆程序,打印欢迎信息: 2.如果账号,或密码输入错误,提示用户重新输入,用户有三次机会: 3.如果用户第三次输入的账号或 ...
- kinect for windows sdk
https://msdn.microsoft.com/library/dn799271.aspx
- AES对称加密算法原理
原著:James McCaffrey 翻译:小刀人 原文出处:MSDN Magazine November 2003 (Encrypt It) 本文的代码下载:msdnmag200311AES.exe ...
- 图像分割之(三)从Graph Cut到Grab Cut
zouxy09@qq.com http://blog.csdn.net/zouxy09 上一文对GraphCut做了一个了解,而现在我们聊到的GrabCut是对其的改进版,是迭代的Graph Cut. ...