摘要:大家好,我從今天開始就會正式講的語法方面。變量中的變量一般使用來聲明的不在本教程討論范圍內,可以用來定義任何種類的變量,如果只對變量進行了定義而沒有賦值,這樣變量會默認為。
大家好,我從今天開始就會正式講javascript的語法方面。
變量
js中的變量一般使用var來聲明(es6的let不在本教程討論范圍內),可以用來定義任何種類的變量,如果只對變量進行了定義而沒有賦值,這樣變量會默認為undefined。 var a=100; var b="hello,world"; var c=true;變量提升
在js中,用var定義的變量會出現提升的效果,變量一般會提升到所在作用域的最頂部,簡單來說就是,如果變量在函數中,就會提升到函數最頂部,如果在全局作用域(window)中,就會提升到所有代碼的最頂部。 這里給一個例子: console.log(a); var a=100; //輸出結果為undefined
這里實際上真正的代碼是:
var a; console.log(a); a=100;
因為a提升到頂部后未被賦值,所以最后會輸出undefined,而且親測嚴格模式下變量提升不會受到影響。
(提升:在js中多次聲明一個變量,只有最后一次聲明有效)
任何一對花括號中的語句集都屬于一個塊,在這之中定義的所有變量在代碼塊外都是不可見的,我們稱之為塊級作用域
在java和c等語言中,塊級作用域的效果很明顯,比如下面這段代碼:
#includevoid main() { int i=2; i--; if(i) { int j=3; } printf("%d/n",j); }
運行這段代碼,會出現錯誤。可以看到,C語言擁有塊級作用域,因為j是在if的語句塊中定義的,因此,它在塊外是無法訪問的。
但是在js中就不是這樣了:
for(var i=0;i<3;i++){} console.log(i); //輸出3
所以在js里面并沒有塊級作用域,它只有函數作用域,在函數內部用var定義的變量不能被外部訪問到,因為函數調用結束后,變量會被自動銷毀。
(提示:在函數內部不用var直接聲明的變量會默認為全局變量,比如:test=100;這個test在函數外部依然能被訪問到,因為默認為全局變量,但是在嚴格模式下這樣聲明一個變量會出錯)
那么如何實現塊級作用域呢?
在js中有一種立即執行的函數,在里面定義的變量一般不會泄露到外界,由于這里還沒有講函數,所以我只稍微提一下,以后再好好講。
我只是把js每個部分的重點理清一下,具體的還是需要大家自己去看,比如關鍵字,注釋,區分大小寫等等,這套教程只適合在零碎時間去看,如果大家能有所收獲,我就很滿足啦。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/80347.html
摘要:大家好,我從今天開始就會正式講的語法方面。變量中的變量一般使用來聲明的不在本教程討論范圍內,可以用來定義任何種類的變量,如果只對變量進行了定義而沒有賦值,這樣變量會默認為。 大家好,我從今天開始就會正式講javascript的語法方面。變量 js中的變量一般使用var來聲明(es6的let不在本教程討論范圍內),可以用來定義任何種類的變量,如果只對變量進行了定義而沒有賦值,這樣變量會默...
摘要:上一篇學習下一代語法一,我們學習了關于塊作用域變量或常量聲明和語法新的字符串拼接語法模版字面量數組元素或對象元素的解構賦值和對象字面量簡寫的相關知識。這便是擴展運算符的用途之一。 本文同步 帶你入門 JavaScript ES6 (二),轉載請注明出處。 上一篇學習下一代 JavaScript 語法: ES6 (一),我們學習了關于塊作用域變量或常量聲明 let 和 const 語法、...
摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現在已經一年的時間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現將已經寫好的文章整理一個目錄,方便更多的小伙伴去學習。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...
摘要:入門筆記二對字符串操作的擴展傳統上,只有方法,可以用來確定一個字符串是否包含在另一個字符串中。返回布爾值,表示參數字符串是否在源字符串的頭部。用于頭部補全,用于尾部補全。模板字符串中嵌入變量,需要將變量名寫在之中。 ES6入門筆記(二) ES6對字符串操作的擴展 傳統上,JavaScript只有indexOf方法,可以用來確定一個字符串是否包含在另一個字符串中。ES6又提供了三種新方法...
閱讀 787·2019-08-30 15:55
閱讀 1530·2019-08-30 15:52
閱讀 2695·2019-08-30 15:44
閱讀 2105·2019-08-30 11:14
閱讀 2621·2019-08-29 13:59
閱讀 1817·2019-08-29 13:45
閱讀 1012·2019-08-29 13:21
閱讀 3374·2019-08-26 13:31