第24天 js 函式變數宣告提公升

2022-03-08 16:41:17 字數 1591 閱讀 1932

一、函式宣告

1、自定義函式

function fun1()

fun2();//函式不呼叫,自己不執行

2、直接量宣告

var fun2=function()

fun2();

3、利用function關鍵字宣告

var fun3=new function("var a=10;b=20;alert(a+b)");

fun3();

二、變數宣告提公升

如果在乙個函式體內部宣告了乙個變數,不管這個變數函式外部有沒有,先執行函式內部的變數,會將變數宣告提公升到函式開始部分,但是不會賦值。

在函式體內部宣告變數,會把該宣告提公升到函式體的最頂端。但是只提公升變數宣告,不賦值。

var num=10;

fun1();

function fun1()//undefined

相當於var num=10;

fun1();

function fun1()

三、函式傳參

函式實參個數要與形參個數相同,arguments.length可以獲取函式實參的個數

1

doctype html

>

2<

html

lang

="en"

>

3<

head

>

4<

meta

charset

="utf-8"

>

5<

title

>title

title

>

6<

script

>7/*

變數提公升*/8

/*window.onload=function()

15}//結果:undefined

*/16

17/*

var a=18;

18f1();

19function f1()//undefined,9

25*/

26/*

函式傳參

*/27

/*function f1(a,b)

30f1(1,2);//3

31f1(5);//nan

*/32

33/*

檢測函式引數個數匹配

*/34

function

fn(a,b)

else42}

43fn(5,

3);//2,2,8

44fn(2,

3,4)

//2,3,"對不起..."

4546

47script

>

48head

>

49<

body

>

5051

body

>

52html

>

JS變數宣告和函式宣告提公升

很多時候,在直覺上,我們都會認為js 在執行時都是自上而下一行一行執行的,但是實際上,有一種情況會導致這個假設是錯誤的。a 2 var a console.log a 按照傳統眼光,console.log a 輸出的應該是undefined,因為var a在a 2之後。但是,輸出的是2。再看第二段 ...

JS變數宣告提公升

js的變數作用域是離它最近的封閉語塊或 塊,包含他們內部的函式.在 塊中宣告會被隱式的提公升到封閉函式的頂部 1 function 6 var y 1 7 上面的 會被js解釋成下面的格式 1 function 8 有時候我們會不小心的在函式內部重新宣告了已有的變數 function text x ...

變數宣告提公升 Vs 函式宣告提公升

先看以下 1 var in window a in window console.log in window 2 var in window a in window console.log in window if a in window 3 var a var in window a in win...