js之知識點總結

函數

() 運算符調用函數
使用上面的例子,toCelsius 引用的是函數對象,而 toCelsius() 引用的是函數結果。
訪問沒有 () 的函數將返回函數定義:


function toCelsius(fahrenheit) {
    return (5/9) * (fahrenheit-32);
}
console.log(toCelsius);
console.log(toCelsius());

windows 執行結構:
在這裏插入圖片描述

對象

訪問屬性

訪問對象屬性,以兩種方式訪問屬性:

//兩種訪問屬性的方法
objectName.propertyName 

objectName["propertyName"]
var person = {
    firstName:"Bill",
    lastName:"Gates",
    age:50,
    eyeColor:"blue"
};

var key = person.firstName;
console.log('name1:'+person.firstName);     //  name1:Bill
console.log('name2:'+person['firstName']);    //  name2:Bill
console.log('name3:'+person[firstName]);     // 報錯  ReferenceError: firstName is not defined
console.log('name4:'+person[key]);   // name4:undefined 

請不要把字符串、數值和布爾值聲明爲對象!

如果通過關鍵詞 “new” 來聲明 JavaScript 變量,則該變量會被創建爲對象:

var x = new String();        // 把 x 聲明爲 String 對象
var y = new Number();        // 把 y 聲明爲 Number 對象
var z = new Boolean();       //	把 z 聲明爲 Boolean 對象

請避免字符串、數值或邏輯對象。他們會增加代碼的複雜性並降低執行速度。

不要把字符串創建爲對象。它會拖慢執行速度。
new 關鍵字使代碼複雜化。也可能產生一些意想不到的結果:
當使用 == 相等運算符時,相等字符串是相等的:

var x = "Bill";             
var y = new String("Bill");

// (x == y) 爲 true,因爲 x 和 y 的值相等

當使用 === 運算符時,相等字符串是不相等的,因爲 === 運算符需要類型和值同時相等。

var x = "Bill";       // typeof x  = string        
var y = new String("Bill");    // typeof y = object

// (x === y) 爲 false,因爲 x 和 y 的類型不同(字符串與對象)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章