天天看點

【JavaScript】對象

no1:

<code>typeof</code>操作符擷取對象的類型

<code>null</code>的類型是<code>object</code>,<code>array</code>的類型也是<code>object</code>,如果我們用<code>typeof</code>将無法區分出<code>null</code>、<code>array</code>和通常意義上的object——<code>{}</code>。

no2:

【包裝對象】

包裝對象用<code>new</code>建立

雖然包裝對象看上去和原來的值一模一樣,顯示出來也是一模一樣,但他們的類型已經變為<code>object</code>

下面是沒new的情況

no3:

幾條規則需要遵守:

不要使用<code>new number()</code>、<code>new boolean()</code>、<code>new string()</code>建立包裝對象;

用<code>parseint()</code>或<code>parsefloat()</code>來轉換任意類型到<code>number</code>;

用<code>string()</code>來轉換任意類型到<code>string</code>,或者直接調用某個對象的<code>tostring()</code>方法;

通常不必把任意類型轉換為<code>boolean</code>再判斷,因為可以直接寫<code>if (myvar) {...}</code>;

<code>typeof</code>操作符可以判斷出<code>number</code>、<code>boolean</code>、<code>string</code>、<code>function</code>和<code>undefined</code>;

判斷<code>array</code>要使用<code>array.isarray(arr)</code>;

判斷<code>null</code>請使用<code>myvar === null</code>;

判斷某個全局變量是否存在用<code>typeof window.myvar === 'undefined'</code>;

函數内部判斷某個變量是否存在用<code>typeof myvar === 'undefined'</code>。

no4:

<code>number</code>對象調用<code>tostring()</code>

這都尼瑪什麼鬼!

no5:

建立時間

javascript的月份範圍用整數表示是0~11,<code>0</code>表示一月,<code>1</code>表示二月……,是以要表示6月,我們傳入的是<code>5</code>!這絕對是javascript的設計者當時腦抽了一下,但是現在要修複已經不可能了。砍人的心都有了

no6:

【regexp】就是正規表達式

【切分字元串】

【分組】

【貪婪比對】

非貪婪比對

【全局比對】--結尾+g

no7:

運作結果

如果是

no8:

【序列化】

<code>json.parse()</code>把它變成一個javascript對象

no9:

【prototype】原型(類似通過繼承來建立對象)

javascript對每個建立的對象都會設定一個原型,指向它的原型對象。

no10:

原型鍊

其原型鍊是<code>arr ----&gt; array.prototype ----&gt; object.prototype ----&gt; null</code>

<code>array.prototype</code>定義了<code>indexof()</code>、<code>shift()</code>等方法,是以你可以在所有的<code>array</code>對象上直接調用這些方法。

其原型鍊是<code>foo ----&gt; function.prototype ----&gt; object.prototype ----&gt; null</code>

<code>function.prototype</code>定義了<code>apply()</code>等方法,是以,所有函數都可以調用<code>apply()</code>方法。

no11:

【構造函數】

<code>xiaoming</code>的原型鍊是<code>xiaoming ----&gt; student.prototype ----&gt; object.prototype ----&gt; null</code>

no12:

【原型繼承】

javascript的原型繼承實作方式就是:

定義新的構造函數,并在内部用<code>call()</code>調用希望“繼承”的構造函數,并綁定<code>this</code>;

借助中間函數<code>f</code>實作原型鍊繼承,最好通過封裝的<code>inherits</code>函數完成;

繼續在新的構造函數的原型上定義新方法

no13:

【class繼承】

看到這,我覺得之前的原型鍊啥還是不要學的好!

終于和java的文法統一了,js太多坑爹的文法,希望早日移除

繼續閱讀