基礎語法、類型、變量
非數字值的判斷方法:(因為Infinity和NaN他們不等於任何值,包括自身)
1、用x != x ,當x為NaN時才返回true;
2、用isNaN(x) ,當x為NaN或非數字值時,返回true;
3、用isFinity(x),在x不是NaN、Infinity、-Infinity時返回true;
雖然(字符串、數字、布爾值)不是對象,他們的屬性是只讀的,但也可以像操作對象一樣來引用他們的屬性和方法,原理:
javascript構造一個(String、Number、Boolean)的臨時對象(稱為包裝對象),然後通過這個臨時對象來調用它的屬性和方法,這些屬性、方法改變的只是這個臨時對象,隨後這個臨時對象會被銷毀,所做的改變不影響原數據;
可以顯式的構造一個包裝對象,它的值和原數據相等 ‘==',但類型不同 ‘==='
數字a 轉 字符串:
a.toString(n) //n表示進制
a.toFixed(i) a.toExponential(i) a.toPrecision(j) //i為小數位數,j為要顯示位數
字符串s 轉 十進制數字:(忽略前置的空格,盡可能多的轉換數字,忽略後面的非數字內容,其中'0X'、'0x'開頭的則把它當著16進制數來轉換)
parseInt(s,[n]) //n表示進制,可選參數,把s當著n進制數來轉為十進制數
parseFloat(s,[n])
對象 自動轉 字符串步驟:
1.若有toString()方法,且它能返回原始值,則調用它,將返回的原始值轉字符串;
2.若第一步無效,則調用valueOf(),將返回的原始值轉字符串;
3.前兩不均無效,則拋出類型錯誤異常;
對象 自動轉 數字步驟:
1.若有valueOf(),則調用它,將返回的原始值轉數字,可返回這個數字;
2.若1無效,則嘗試調用toString(),將返回的原始值轉數字並返回該數字;
3.若1、2均無效,則拋出類型錯誤異常;
Date對象是個例外
變量聲明提前:
調用未聲明的變量,編譯時會把變量的聲明部分提前,而把初始化部分留在原地;
(重復聲明的變量,局部的將覆蓋外部的)
var s1 = 'ggggg'; function f() { console.log(s1); //s1 == undefined var s1 = 'cccccc'; console.log(s1); //s1 == 'cccccc' }
位運算:& | ^ ~
&:按位與,對左右兩個整型操作數執行AND操作,僅當對應位都為1時,結果為1;
|:按位或,對應位有一個為1,則結果為1;
^:按位異或,對應位一樣則為0,不一樣則為1;
~:按位取反,一元運算符,所有位取反,相當於改變符號並減1;
(n是0~31之間)
<<n:所有位左移n位,即將值乘以2的n次方,捨棄最左n位,用0來補充右邊n位;
>>n:所有位右移n位,忽略右邊溢出位,填補左邊位有原操作數決定,結果相當於除2的n次方,捨棄余數,7>>1=3 , -7>>1=-4
<<<n:同<<,只是用0來填補左邊位
字符串之間的比較大小:
JavaScript字符串是一個由16位整數值組成的字符系列,字符串的比較的是它們的字符的數值,大小寫的字符的數值不同;
比較運算符偏愛數字,只要有一個操作數為數字,就做數字運算,只有當兩個都為字符串時,才做字符串比較
而‘+'運算符則偏愛字符串,只要有一個操作數為字符串,就做字符串連接運算
x in p
檢查對象p內是否存在屬性x,包括方法
a instanceof A
檢查對象a是否是類A的一個實例,包含對其父類的檢測
假值:false、 null、 undefined、 0 、-0 、NaN ""
真值:除了以上的值,其他值均為真值;
對象:除了字符串、數字、true、false、null、undefined之外,其他值都是對象!
以上就是小編為大家帶來的javascript學習筆記_淺談基礎語法,類型,變量的全部內容了,希望對大家有所幫助,多多支持~