官术网_书友最值得收藏!

2.2 在REPL運行環境中操作變量

在REPL運行環境中,可以使用var關鍵字來定義一個變量并為其賦值,但是在輸入了對其賦值進行的表達式后,該表達式的執行結果將被顯示為undefined。

例如,在如下所示的兩條表達式中,第一條表達式中不使用var關鍵字,執行結果為變量值,第二條表達式中使用var關鍵字,執行結果為undefined。

> foo='bar';
'bar'
>var foo='bar';
undefined

之所以出現這樣兩種不同的結果,是因為REPL環境內部使用eval函數來評估該表達式的執行結果。而在JavaScript代碼中,如果將上述兩條表達式作為eval函數的參數,則eval函數將返回不同的結果。

console.log("foo='bar'");                  // 控制臺窗口中將輸出“bar”
console.log("varfoo='bar'");            // 控制臺窗口中將輸出undefined

在REPL運行環境中為變量賦值后,我們可以通過輸入變量名的方法來查看變量內容。

將簡單類型的值賦值給變量后,輸入變量名后按下回車鍵,REPL運行環境中將直接顯示該變量值,輸入表達式及其執行結果如下所示:

// 為變量賦值
> foo='bar';
'bar'
// 輸入變量名后顯示變量值
>foo
'bar'

將對象賦值給變量后,輸入變量名后按下回車鍵,REPL運行環境中將直接顯示該變量所引用對象的各屬性名及屬性值,輸入表達式及其執行結果如下所示:

// 將對象賦值給變量
>user=new Object();
{}
>user.Name='Lulingniu';
'Lulingniu'
>user.age=40;
40
// 輸入變量名后顯示變量所引用對象的各屬性名及屬性值
>user
{Name:'Lulingniu',age:40}

如果變量所引用對象的某個屬性值為一個函數,輸入變量名并輸入回車鍵后,REPL運行環境中將把該屬性值顯示為“[function]”(這是因為函數中通常可能具有很多內容,如果REPL運行環境中使用函數內容來顯示該屬性值的話,一個變量內容往往可能會變得很長很長),輸入表達式及其執行結果如下所示:

// 將對象賦值給變量
>user=new Object();
{}
>user.Name='Lulingniu';
'Lulingniu'
>user.setName=function(name){user.name=name};
[function]
// 輸入變量名后顯示變量所引用對象的各屬性名及屬性值,使用”
[function]”來顯示函數
>user
{Name:'Lulingniu',
setName:[function]
}
主站蜘蛛池模板: 杭锦后旗| 手游| 巨野县| 伊宁市| 东港市| 乌拉特前旗| 游戏| 安塞县| 汝南县| 曲松县| 济南市| 长乐市| 平顶山市| 吕梁市| 贵溪市| 罗田县| 阳城县| 略阳县| 黔西县| 如东县| 湟源县| 杭州市| 古丈县| 隆德县| 潜山县| 南昌县| 全南县| 临城县| 太保市| 延长县| 大新县| 通州市| 麻城市| 阳原县| 乐至县| 澄迈县| 涞水县| 韶山市| 黔江区| 哈巴河县| 阿荣旗|