[js]变量声明、函数声明、函数定义式、形参之间的执行顺序

一、当函数声明和函数定义式(变量赋值)同名时

function ledi(){
	alert(‘ledi1‘);
};
ledi();
var ledi = function (){
	alert(‘ledi2‘);
};
ledi();

执行顺序:

var ledi;
function ledi(){
    alert(‘ledi1‘);
};
//预编译结束
==============
ledi();
ledi = function (){
    alert(‘ledi2‘);
};
ledi();

函数声明覆盖变量声明,但不会覆盖其值,然后按顺序执行代码,输出ledi1,紧接着将ledi变量重新赋值即初始化,输出ledi2

时间: 2024-10-10 10:30:27

[js]变量声明、函数声明、函数定义式、形参之间的执行顺序的相关文章

java变量,初始化快,构造函数的执行顺序

转自 http://blog.csdn.net/macheng365/article/details/6403050 —————————————————————————————————————————————————— 对于JAVA中类的初始化是一个很基础的问题,其中的一些问题也是易被学习者所忽略.当在编写代码的时候碰到时,常被这些问题引发的错误,感觉莫名其妙.而且现在许多大公司的面试题,对于这方面的考查也是屡试不爽.不管基于什么原因,我认为,对于java类中的初始化问题,有必要深入的了解.Ja

JavaScript(1)——变量、函数声明及作用域

这是我的第一篇博客文章,本人不才,文笔也不好,所以可能写的有点凌乱.有什么不对的地方还望见谅.不过每天进步一小步,总有一天会迈出那一大步.以下内容是我对变量.函数声明及函数表达式.作用域的理解. [变量]大意上来讲,变量就是所定义的一个可以用来保存值的占位符.定义变量时要使用var操作符. 变量所保存类型可以被改变,但不建议. var操作符定义的变量将成为该变量的作用域中的局部变量,在函数退出后,变量将被销毁. 若省略var操作符可以定义全局变量,不过在严格模式下会导致抛出ReferenceEr

Drupal主题预处理函数与处理函数的执行顺序

Drupal的主题机制当中存在很多种预处理函数和处理函数,看起来让人犯晕.本文为大家总结了它们执行的基本规律. Drupal的所有预处理函数在处理函数之前运行. template前缀的函数首先运行,module前缀的函数其次运行,theme前缀的函数最后运行. Drupal的多钩子函数在特定钩子函数之前运行. 下面是总结的执行顺序列表,自上而下执行: template_preprocess() template_preprocess_HOOK() MODULE_preprocess() MODU

ASP.NET相关事件及JS的执行顺序

实验代码: ASPX: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Ajax.WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head run

js中页面加载完成后执行的几种方式及执行顺序

在js和jquery使用中,经常使用到页面加载完成后执行某一方法.通过整理,大概是五种方式(其中有的只是书写方式不一样). 1:使用jQuery的$(function){}; 2:使用jquery的$(document).ready(function(){});前两者本质上没有区别,第1种是第2种的简写方式.两个是document加载完成后就执行方法. 3:使用jQuery的$(window).load(function(){}); 4:使用window.onload = function(){

java代码块,静态代码块,静态变量,构造方法执行顺序

一个类中执行顺序: 静态变量静态代码块代码块构造方法 子类和父类执行顺序: 父类静态变量父类静态代码块子类静态变量子类静态代码块父类代码块父类构造方法子类代码块子类构造方法 直接看代码,一目了然. public class Test { public static void main(String[] args) { new A(); /* 结果: * A静态变量 A静态代码块 A代码块 A构造方法 * */ new B(); /* * 结果: * A静态变量 A静态代码块 B静态变量 B静态代

JS中的函数声明存在的“先使用,后定义”

首先看一段JS代码,其中使用了两种方式声明了两个函数,分别在不同的地方调用两个函数: 1 <script> 2 'use strict'; 3 // 输出hello函数 4 console.log(hello); 5 // 定义hello函数 6 function hello(){ 7 alert("Hello"); 8 } 9 // 输出hi变量 10 console.log(hi); 11 // 给hi赋一个函数 12 var hi = function(){ 13 a

简单说明一下JS中的函数声明存在的“先使用,后定义”

首先看一段JS代码,其中使用了两种方式声明了两个函数,分别在不同的地方调用两个函数: 1 <script> 2 'use strict'; 3 // 输出hello函数 4 console.log(hello); 5 // 定义hello函数 6 function hello(){ 7 alert("Hello"); 8 } 9 // 输出hi变量 10 console.log(hi); 11 // 给hi赋一个函数 12 var hi = function(){ 13 a

浅谈JS变量声明和函数声明提升

先来两个问题 很多时候,在直觉上,我们都会认为JS代码在执行时都是自上而下一行一行执行的,但是实际上,有一种情况会导致这个假设是错误的. a = 2; var a; console.log(a); 按照传统眼光,console.log(a)输出的应该是undefined,因为var a在a = 2之后.但是,输出的是2. 再看第二段代码: console.log(a); var a = 2; 有人会想到第一段代码,然后回答undefined.还有人会认为a在使用前未被声明,因此抛出Referen