当javaScript从入门到提高前需要注意的细节:函数部分

来源:未知 责任编辑:责任编辑 发表时间:2014-04-20 03:38 点击:

在javaScript中,函数是一个很基础的对象,同样也是非常随意,定义起来很随意,用起来那是更加随意。以下说明在javaScript中声明一个函数那是多麽的随意

[html]
function fun1() {//声明一个函数 
 

 
function() { //声明一个匿名函数 
 

 
var fun2 = function() {//声明一个变量指向一个匿名的函数表达式 
 

 
var fun3 = function fun4() {//声明一个变量指向一个非匿名的函数表达式 
 

 
function fun5() { 
    return function() { //返回一个匿名函数 
 
    } 

那function和var的区别有哪些?我们不讨论深奥的,我们看下哪些运行结果
[html]
alert(typeof fun1); //function 
alert(typeof fun2); //undefined 
alert(typeof fun3); //undefined 
alert(typeof fun4); //function 
alert(typeof fun5); //function 
 
 
function fun1() {//声明一个函数 
 

 
function() { //声明一个匿名函数 
 

 
var fun2 = function() {//声明一个变量指向一个匿名的函数表达式 
 

 
var fun3 = function fun4() {//声明一个变量指向一个非匿名的函数表达式 
 

 
function fun5() { 
    return function() { //返回一个匿名函数 
 
    } 

我们可以看到function比var还要优先。
我们之前说变量的时候已经说过,一个变量可以被反复赋值,对于函数来说,这可以吗?
对于习惯在静态语言下写代码的人,看到如下代码估计要气愤了,这个是啥破代码?
[html]
function fun1() { 
    alert("Y"); 

 
function fun1() { 
    alert("N"); 

但事实上,这个代码是可以执行的,执行的结果暗示我们函数的名称会被自动的作为对象的一个属性,函数体就是属性的值了
[html]
fun1(); // n 
 
this["fun1"](); // n 
this.fun1(); // n 
window["fun1"](); // n 
window.fun1(); // n 

现在我们把两个因素合起来看看,function在所有执行代码前先编译,且后面的function会覆盖前面的function定义,那么,如下的代码执行的是?
[html]
var input = 5; 
switch (input) { 
    case 10: 
        function fun1() { 
            alert(10); 
        } 
        break; 
    case 5: 
        function fun1() { 
            alert(5); 

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Gb2312转utf-8编码的方法(vbs+js)
  • 如何使用Ajax技术开发Web应用程序(1)
  • js跳转路径问题
  • JavaScript模仿桌面窗口
  • 用js检测两个线段是否相交
  • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
  • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
  • 我是如何去了解jquery的(六),案例之幻灯片轮换
  • Jquery封装幻灯片效果
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1