鑒別空對象看齊能否進行屬性操作。 雙等會進行隱式類型轉換,==兩側數據類型不一樣時,會轉換成一樣的在進行比較。 1 若等號一側為 布爾值 就都轉換成布爾值進行比較。 NaN和任何內容比較結果都為false onchange檢測內容(在表單中):1 在單選和覆選框中,檢測checked值是否發生變化( ...
鑒別空對象看齊能否進行屬性操作。 雙等會進行隱式類型轉換,==兩側數據類型不一樣時,會轉換成一樣的在進行比較。 1 若等號一側為 布爾值 就都轉換成布爾值進行比較。 NaN和任何內容比較結果都為false onchange檢測內容(在表單中):1 在單選和覆選框中,檢測checked值是否發生變化(檢測是否勾選或取消勾選) 2在其他表單控制項中,檢測value值發生變化。 3 表單控制項(input textareea selecter)要獲取他們的值獲取的是value。 在js中只有nan類型的數據不等於自己,NaN不能拿來與數字做比較,若比較則一直為假。 冒泡事件,不止存在input和label中當寫單選框和多選框時input被label標簽包裹住,那麼點擊label觸發input input會產生一個冒泡事件導致label被再次點擊,有兩中解決方法 1 input[0].onclick = function(e){ e.stopPropagation(); };用此函數來解決冒泡事件。 2 不謝label的點擊事件,改為寫label的onchange事件 或者 ||或條件只要有一個成立整體就會成立。 並且&&兩個條件都成立整體才成立。 onchange發生改變。如input.onchange.=function(){} checked選中checked=true; checked=false; console.dir()查看括弧中的對象有多少屬性和方法。 typeof 查看類型 如var a=0;alert(typeof a) parseInt ()取整 parsefloat()取小數 isNaN(要檢測的內容)如果轉化結果是一個數字就返回false,如果不是一個數字就返回true,轉換所調用方法為number。isNaN會進行隱式類型轉換。 轉換成字元串用toString如:var a=123 a=a.toString(); ##ECMAscript## js中的數據類型 標準制定的數據類型劃分 可通過下標來獲取指定位置的數字。可同過length來取得長度。 1.基本類型: number(數字)數字類型包含從負無窮到正無窮的數字以及NaN(全成not a number 是數字類型但不是一個數字) NAN何時出現:一般為number的類型的數字中不會出現NAN只有想將非number類型的其他類型的數字強行轉換成number並且被轉換的其它類型並不是一個單純的數字組合而成時才會產生NAN這個類型,NAN不等於任何東西,並且不等於他自己。2檢測一個內容是否是NAN時,可以使用isNaN(); string(字元串)任何在引號中包含的一串字元都是字元串。 undefined未定義 boolean(布爾值) 只有兩個屬性true false 可用於判斷。 null(空對象又叫找不到對象)如當獲取對象時沒有獲取到。空對象特性:與非空對象區別,空對象不能添加自定義屬性。在typeof中null空對象的類型也是對象。 當顯示為空對象時檢查代碼。如何檢查一個對象是否為空:空對象不能進行屬性操作,當獲取元素沒有獲取到時會拿到一個空對象。 2.對象類型object(複合類型)可存儲任意類型數據 array[數組]空的數組不等於空對象 數組中可以存取任意類型數據 元素對象 object(對象) 如 var obj={} var obj2=new object{} function不在標準數據類型 在typeof(運算符,查看數據類型)中數據類型分為: number(數字)、string(字元串)、undenfined(未定義)、boolean(布爾值)、object(對象)、function(函數) 在typeof中null空對象的類型也是對象。 number:正無窮(Number.POSITIVE_INFINITY ) 負無窮(Number.NEGATIVE_INFINITY ) NAN console.dir()查看括弧中的對象有多少屬性和方法。 typeof 查看類型 如var a=0;alert(typeof a)typeof 返回值為字元串。 ---------------------------------------------------------------------------------------------------------------------- 數據類型轉換:parseInt ()取整 /從左向右一位一位去查看,如果遇見以為非數字的就把之前的查看到的數字返回/parseInt(要轉換的數字,進位)如果第0位就是數字就是NaN parseFloat()轉換成小數 在程式中叫浮點數 從左向右一位一位匹配直到遇到一個非數字就返回這位前邊的數字(可以匹配一個小數點)如果第0位就是數字就是NaN Number(要轉換的數字):先看完這個內容,在轉換成數字從左向右看完所有的字元,如果完全符合數字的規則就轉換,如果不符合數字的規則就返回NaN。強制轉換類型強制轉換為nimber。 若將true轉換成數字為1, false轉換成數字為0. 空數組轉換成0 數組只有1位時會用這一位去轉換,並且只轉換數字和字元串,其他 的都是NAN。數組有多位 只會被轉換成NAN。 強制類型轉換,或顯示類型轉換:如 轉化成數字:parseInt、parseFloat、number 強制轉化為字元串: 要轉化的內容.tostring 2String(要轉換的內容) 強制轉化為布爾值: Boolean(要轉換的內容) 真:true 非0數字 非空對象 非空字元串 空數組不為空對象 假:false NaN 0 null(空對象) 空字元串 underfined 隱式類型轉換:如下 1.+號遇見字元串時,會將兩側內容都轉換成字元串,進行字元串鏈接。 2.+號的兩側沒有字元串,則優先用number轉換成數字,進行+法運算。如果不能轉換成數字,則轉換成字元串進行鏈接。 3.-,*,/,%,-=,*=,/=,%=都是只有數字運算的功能,所以在使用時,都會去將其他類型轉換成數字。 ###關係運算符結果只會是布爾值### 1 如果等號一側為布爾值,就都轉換成布爾值進行比較。 2 若兩側都轉換成false,就兩側直接轉換成false進行比較。 3 如果兩側有一側是數字,就都轉換成數字進行比較。 雙等是先轉換類型在進行比較。 < > <= >= == != === !== ==和=== 以及!=和!==的區別 == 和!=會進行隱式類型轉換,把左右兩側的數據類型轉成一樣的之後,在去比較 ===和!== 進行比較時,也會進行數據的比較,如果數據類型不同則判定兩邊不相等。 邏輯運算符 &&與 || 或 ! 否 返回的結果都是true和false, !會有隱式類型轉換(bollean) 3隱式類型轉換瀏覽器自己進行轉換。其他類型轉換成數組,主要調取Number方法目前觸發隱式類型轉換的如下: + 當加號左右有一位是字元串,會把另一也轉成字元串。使用+號時兩邊沒有字元串時優先嘗試將左右兩邊轉換成數字。若不能轉換成數字就轉換成字元串進行連接。 -,*,/,%,-=,*=,/=,%= 運算符左右兩側轉換成數字進行運算。 NAN解釋(not a number)類型為number NaN不等於任何數,並且不等於他自己。 isNaN(要檢測的內容)如果轉化結果是一個數字就返回false,如果不是一個數字就返回true,轉換所調用方法為number。isNaN會進行隱式類型轉換。 轉換成字元串用toString如:var a=123 a=a.toString();或a=string(a) 若轉換數組,如果字元串為空就轉換成一個空的字元串若數 組中有的話就會轉換成字元串。 真:true 非空字元串5,非0數字,非空對象document,非空對象(因為空數字不為空對象) 假:false 空字元串,數字0 和NAN,空對象,undenfined。 取反也可以進行隱式類型轉換。 Bollea 表達式結束時加分號 調用時要分號 if for迴圈 和正常聲明一個函數結束不要加分號