var 与function的权重浅析

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 </head>
 7 <body>
 8     <script>
 9         var foo;
10         // 若是没有下面这一行,foo为函数,若是有得话foo= xx会覆盖掉function foo()
11          foo = 1;
12          function foo(){
13             alert("11")
14         }
15         console.log(typeof foo);
16
17     </script>
18 </body>
19 </html>

再看一个:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 </head>
 7 <body>
 8     <script>
 9         var foo;
10         // 若是没有下面这一行,foo为函数,若是有得话foo= xx会覆盖掉function foo()
11          foo = function (){alert(22)};
12          function foo(){
13             alert("11")
14         }
15         foo()
16
17     </script>
18 </body>
19 </html>

若var声明了某一个变量(如foo);代码后面被function重新声明,若foo此时没有被赋值,此时foo为函数,如foo被赋值,如(foo=xxxx),foo的函数声明会被覆盖掉

时间: 2024-10-23 20:12:51

var 与function的权重浅析的相关文章

从var func=function 和 function func()区别谈Javascript的预解析机制

var func=function 和 function func()在意义上没有任何不同,但其解释优先级不同:后者会先于同一语句级的其他语句. 即: { var k = xx(); function xx(){return 5;} } 不会出错,而 { var k = xx(); var xx = function(){return 5;} } 则会出错. 为什么会这样呢?这就要引出javascript中的预解析机制来解释了. JavaScript解析过程分为两个阶段,一个是编译阶段,另外一个

关于 function a(){} 和 var a=function(){}

例: a(); b(); function a(){console.log(111);} var b = function(){console.log(222);} 运行发现 111.b is not a function; 这是因为function a(){}在代码执行前进行了预编译. 什么是js的预编译? js会把var和function这两个声明关键字提前解释一下,而变量的赋值是在代码执行时完成. 即:var b = function(){}在预编译阶段,相当于 var b ,而在执行的时

1、function aa(){}和 var aa=function(){}的区别:

例如: alert(sum(10,10)); function sum(num1,num2){ return num1+num2; }//正常执行 备注:正常执行的那个,在代码开始执行之前,解析器就通过一个名为函数声明提升的过程,读取并将函数声明添加到执行环境中,对代码求值时,javaScript引擎在第一遍会声明函数并将它们放到源代码数的顶部 alert(sum(10,10)); var sum=function(num1,num2){ return num1+num2; }//报错 1.fu

Javascript自执行匿名函数(function() { })()的原理浅析

匿名函数就是没有函数名的函数.这篇文章主要介绍了Javascript自执行匿名函数(function() { })()的原理浅析的相关资料,需要的朋友可以参考下 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途.匿名函数指没有指定函数名或指针的函数,自执行匿名函数只是其中一种,下文中称这种函数为:自执行函数 下面是一个最常见的自执行函数: // 传统匿名函数 (function() { alert('hello'); })(); 这段代码的执行效果就是在页面再载入时弹出

作用域与闭包:this,var,(function () {})

this 在函数执行时,this 总是指向调用该函数的对象.要判断 this 的指向,其实就是判断 this 所在的函数属于谁. 在<javaScript语言精粹>这本书中,把 this 出现的场景分为四类,简单的说就是: 有对象就指向调用对象 没调用对象就指向全局对象 用new构造就指向新对象 通过 apply 或 call 或 bind 来改变 this 的所指. 作用域与闭包:this,var,(function () {})

JavaScript中Function Declaration与Function Expression 或者说 function fn(){}和var fn=function(){} 的区别

JavaScript是一种解释型语言,函数声明会在JavaScript代码加载后.执行前被解释,而函数表达式只有在执行到这一行代码时才会被解释. 在JS中有两种定义函数的方式, 1是:var aaa=function(){...} 2是:function aaa(){...} var 方式定义的函数,不能先调用函数,后声明,只能先声明函数,然后调用. function方式定义函数可以先调用,后声明. var func=function 和 function func()在意义上没有任何不同,但其

var functionName = function() {} vs function functionName() {}

The difference is that functionOne is defined at run-time, whereas functionTwo is defined at parse-time for a script block. For example: <script> // Error functionOne(); var functionOne = function() { }; </script> <script> // No error fu

function func(){} 与 var func=function(){}的区别

1  var func =function(){}  ,即和 var 变量的特性 一样. func 变量名提前,但是不会初始化,直到执行到初始化代码. 2  function func(){}      变量名 和方法体  都会提前到 顶部执行. 实例: { var k = xx(); function xx(){return 5;}}不会出错,而{ var k = xx(); var xx = function(){return 5;}}

有具体名称的匿名函数var bar = function foo(){}

http://kangax.github.io/nfe/ 命名的函数表达式 函数表达式实际上可以经常看到.Web开发中的一个常见模式是基于某种特性测试来"分叉"函数定义,从而获得最佳性能.由于这种分叉通常发生在相同的范围内,所以几乎总是需要使用函数表达式.毕竟,就我们现在所知,函数声明不应该有条件地执行: // `contains` is part of "APE Javascript library" (http://dhtmlkitchen.com/ape/)