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 ----> array.prototype ----> object.prototype ----> null</code>
<code>array.prototype</code>定義了<code>indexof()</code>、<code>shift()</code>等方法,是以你可以在所有的<code>array</code>對象上直接調用這些方法。
其原型鍊是<code>foo ----> function.prototype ----> object.prototype ----> null</code>
<code>function.prototype</code>定義了<code>apply()</code>等方法,是以,所有函數都可以調用<code>apply()</code>方法。
no11:
【構造函數】
<code>xiaoming</code>的原型鍊是<code>xiaoming ----> student.prototype ----> object.prototype ----> null</code>
no12:
【原型繼承】
javascript的原型繼承實作方式就是:
定義新的構造函數,并在内部用<code>call()</code>調用希望“繼承”的構造函數,并綁定<code>this</code>;
借助中間函數<code>f</code>實作原型鍊繼承,最好通過封裝的<code>inherits</code>函數完成;
繼續在新的構造函數的原型上定義新方法
no13:
【class繼承】
看到這,我覺得之前的原型鍊啥還是不要學的好!
終于和java的文法統一了,js太多坑爹的文法,希望早日移除