變量內容

??/*

????????變量的提升:

??????????javascript引擎工作方式是:先解析代碼,獲取所有被聲明的變量,然后再一行一行的運行。

??????????這造成的結果就是 所有的變量的聲明語句都會被提升到代碼的頭部,這種機制叫做變量的提升。

??????*/

??????/*

????????變量作用域

??????*/

??????/*

????????一等公民:在js世界中函數不僅具有傳統(tǒng)函數的功能(聲明和調用)還能夠賦值

????????傳參,返回,這樣的函數稱為一級函數或一等公民;

??????*/

??????var num = 0;

??????console.log(num);//0

??????var func = function(){ console.log("ahaha") }

??????console.log(func); //? (){ console.log("ahaha") }

??????/*

????????函數可以直接當作另一個函數的參數

??????*/

??????function func1(){

????????console.log("我是涼白開啊")

??????}

??????function func2(func){

????????func();

??????}

??????func2(func1);

??????/*

????????函數名提升:通過function命令聲明的函數,其聲明語句會被提升到代碼頭部

??????*/

/*

????????函數默認值:用于如果參數不給值,那么就可以設置默認值

??????*/

??????function func3(num){

????????(num!=undefined&&num!=null)?num = num : num = 1;

????????console.log(num)

??????}

??????func3(0);//0

??????func3();//1

??????func3(2);//2


//變量提升小例子

??????var a = 0;

??????test();

??????function test(){

????????console.log(a);? ? //undefined

????????var a = 2;

????????console.log(2);? ? //2

??????}

??????/*

????????以上代碼可以變?yōu)?/p>

????????var a

????????function test(){

??????????var a

??????????console.log(a);? ?

??????????a = 2;

??????????console.log(2);? ?

????????}

????????a = 0

????????test()


????????所以第一個輸出undefined, 第二個輸出2

??????*/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容