<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>011-020章總結</title> </head> <body> <pre> 011. 強制類型轉換-String 強制類型轉換 - 指將一個數據類型強制轉換爲其餘的數據類型 - 類型轉換主要指,將其餘的數據類型,轉換爲 String Number Boolean 將其餘的數據類型轉換爲String 方式一: - 調用被轉換數據類型的toString()方法 - 該方法不會影響到原變量,它會將轉換的結果返回 - 可是注意:null和undefined這兩個值沒有toString()方法,報錯。 若是調用他們的方法,會報錯 toString()函數的返回值爲String類型。返回當前對象的字符串形式。 JavaScript的許多內置對象都重寫了該函數,以實現更適合自身的功能須要。 對於Number調用toString()時能夠在方法中傳遞一個整數做爲參數 此時它將會把數字轉換爲指定的進制,若是不指定則默認轉換爲10進制 方式二: - 調用String()函數,並將被轉換的數據做爲參數傳遞給函數 - 使用String()函數作強制類型轉換時, 對於Number和Boolean實際上就是調用的toString()方法 可是對於null和undefined,就不會調用toString()方法 它會將 null 直接轉換爲 "null" 將 undefined 直接轉換爲 "undefined". </pre> <script type="text/javascript"> console.log("第011"); // 調用對象的toString()方法 // 調用xxx的yyy()方法,就是xxx.yyy() var ts_123 = 123; var ts_true = true; var ts_null = null; var ts_undefined = undefined; var s_null = null; var s_undefined = undefined; ts_123 = ts_123.toString(); ts_true = ts_true.toString(); //ts_null = ts_null.toString(); //ts_undefined = ts_undefined.toString(); s_null = String(null); s_undefined = String(undefined); console.log("toString(123) ->" + ts_123 ); //123 console.log("toString(true) ->" + ts_true ); //true //console.log("toString(null) ->" + ts_null ); // 沒有報錯 //console.log("toString(undefined) ->" + ts_undefined ); // 沒有報錯 console.log("String(null) ->" + s_null ); // null console.log("String(undefined) ->" + s_undefined ); //undefined //對於Number調用toString()時能夠在方法中傳遞一個整數做爲參數 //此時它將會把數字轉換爲指定的進制,若是不指定則默認轉換爲10進制 var at =55 at = at.toString(16); console.log(at); //37 console.log(typeof at); //string </script> <pre> 012. 強制類型轉換-Number 將其餘的數據類型轉換爲Number 轉換方式一: 使用Number()函數 - 字符串 --> 數字 1.若是是純數字的字符串,則直接將其轉換爲數字 2.若是字符串中有非數字的內容,則轉換爲NaN 3.若是字符串是一個空串或者是一個全是空格的字符串,則轉換爲0 - 布爾 --> 數字 true 轉成 1 false 轉成 0 - null --> 數字 0 - undefined --> 數字 NaN 轉換方式二: - 這種方式專門用來對付字符串 - parseInt() 把一個字符串轉換爲一個整數 - parseFloat() 把一個字符串轉換爲一個浮點數 </pre> <script type="text/javascript"> console.log("第012"); var n_123 = Number("123"); var n_123safsd = Number("123safsd"); var n_ = Number(""); var n_true = Number(true); var n_false = Number(false); var n_null = Number(null); var n_undefined = Number(undefined); var p_123safsd = parseInt("123safsd"); var p_float = parseFloat("4323.54353fsdfasd"); console.log("Number('123') ->" + n_123 ); // 123 console.log("Number('123safsd') ->" + n_123safsd ); //NaN console.log("Number('') ->" + n_ ); //0 console.log("Number(true) ->" + n_true ); //1 console.log("Number(false) ->" + n_false ); //0 console.log("Number(null) ->" + n_null ); //0 console.log("Number(undefined) ->" + n_undefined );//NaN console.log("parseInt('123safsd') ->" + p_123safsd ); //123 console.log("parseFloat('4323.54353fsdfasd') ->" + p_float ); //4323.54353 </script> <pre> 013. 其餘進制的數字 若是須要表示16進制的數字,則須要以0x開頭 若是須要表示8進制的數字,則須要以0開頭 若是要要表示2進制的數字,則須要以0b開頭,可是不是全部的瀏覽器都支持 </pre> <script type="text/javascript"> console.log("第013"); var a ; //十六進制 a = 0x10; a = 0xff; a = 0xCafe; //八進制數字 a = 070; //二進制數字 //a =0b10; //向"070"這種字符串,有些瀏覽器會當成8進制解析,有些會當成10進制解析 a = "070"; //能夠在parseInt()中傳遞一個第二個參數,來指定數字的進制 a = parseInt(a,10); console.log(typeof a); // number console.log(a); //70 </script> <pre> 014. 轉換爲Boolean 將其餘的數據類型轉換爲Boolean - 使用Boolean()函數 - 數字 ---> 布爾 - 除了0和NaN,其他的都是true - 字符串 ---> 布爾 - 除了空串,其他的都是true - null和undefined都會轉換爲false - 對象也會轉換爲true </pre> <script type="text/javascript"> console.log("第014"); var b_123 =Boolean(123); //true var b_0 =Boolean(0); //false var b_nan =Boolean(NaN); //false var b_string =Boolean("fdada"); //true var b_kong =Boolean(""); //false var b_null =Boolean(null); //false var b_undefined =Boolean(undefined); //false var b_object =Boolean(Object); //true console.log("Boolean(123) ->" + b_123); //true console.log("Boolean(0) ->" + b_0); //false console.log("Boolean(NaN) ->" + b_nan); //false console.log("Boolean('fdada') ->" + b_string); //true console.log("Boolean('') ->" + b_kong); //false console.log("Boolean(null) ->" + b_null); //false console.log("Boolean(undefined) ->" + b_undefined); //false console.log("Boolean(Object) ->" + b_object); //true </script> <pre> 015. 算數運算符 運算符也叫操做符 經過運算符能夠對一個或多個值進行運算,並獲取運算結果 好比:typeof就是運算符,能夠來得到一個值的類型 它會將該值的類型以字符串的形式返回 number string boolean undefined object 運算符通常不會改變原變量的值。 算數運算符 當對非Number類型的值進行運算時,會將這些值轉換爲Number而後在運算 任何值和NaN作運算都得NaN + 能夠對兩個值進行加法運算,並將結果返回 若是對兩個字符串進行加法運算,則會作拼串 會將兩個字符串拼接爲一個字符串,並返回 任何的值和字符串作加法運算,都會先轉換爲字符串,而後再和字符串作拼串的操做 - 能夠對兩個值進行減法運算,並將結果返回 * 能夠對兩個值進行乘法運算 / 能夠對兩個值進行除法運算 % 取模運算(取餘數) </pre> <script type="text/javascript"> console.log("第015"); var a = 123; var result = typeof a; console.log(typeof result); //string result = a + 1; // 124 result = 456 + 789; result = true + 1; //2 result = true + false; //1 result = 2 + null; //2 result = 2 + NaN; // nan result = "你好" + "大帥哥"; console.log(result); //你好大帥哥 var str = "鋤禾日當午," + "汗滴禾下土," + "誰知盤中餐," + "粒粒皆辛苦"; result = 123 + "1"; console.log(result); //字符串1231 result = true + "hello"; console.log(result); //"truehello" //任何值和字符串相加都會轉換爲字符串,並作拼串操做 /* * 咱們能夠利用這一特色,來將一個任意的數據類型轉換爲String * 咱們只須要爲任意的數據類型 + 一個 "" 便可將其轉換爲String * 這是一種隱式的類型轉換,由瀏覽器自動完成,實際上它也是調用String()函數 */ var c = 123; c = c + ""; //c = null; //c = c + ""; console.log(typeof c); //string console.log("c = "+c); //123 result = 1 + 2 + "3"; console.log(result); //33 result = "1" + 2 + 3; console.log(result); //123 result = 100 - 5; result = 100 - true; result = 100 - "1"; result = 2 * 2; result = 2 * "8"; result = 2 * undefined; result = 2 * null; result = 4 / 2; result = 3 / 2; console.log("result = "+result); //1.5 /* * 任何值作- * /運算時都會自動轉換爲Number * 咱們能夠利用這一特色作隱式的類型轉換 * 能夠經過爲一個值 -0 *1 /1來將其轉換爲Number * 原理和Number()函數同樣,使用起來更加簡單 */ var d = "123"; //console.log("result = "+result); d = d - 0; console.log(typeof d); //number console.log(d); //123 result = 9 % 3; result = 9 % 4; result = 9 % 5; console.log("result = "+result); //4 </script> <pre> 016. 一元運算符 一元運算符,只須要一個操做數 + 正號 - 正號不會對數字產生任何影響 - 負號 - 負號能夠對數字進行負號的取反 - 對於非Number類型的值, 它會將先轉換爲Number,而後在運算 能夠對一個其餘的數據類型使用+,來將其轉換爲number 它的原理和Number()函數同樣 </pre> <script type="text/javascript"> console.log("第016"); var a = 123; a = -a; a = true; a = "18"; a = +a; /*console.log("a = "+a); console.log(typeof a);*/ var result = 1 + +"2" + 3; console.log("result = "+result); //6 </script> <pre> 017. 自增和自減 自增 ++ - 經過自增可使變量在自身的基礎上增長1 - 對於一個變量自增之後,原變量的值會當即自增1 - 自增分紅兩種:後++(a++) 和 前++(++a) 不管是a++ 仍是 ++a,都會當即使原變量的值自增1 不一樣的是a++ 和 ++a的值不一樣 a++的值等於原變量的值(自增前的值) ++a的值等於新值 (自增後的值) 自減 -- - 經過自減可使變量在自身的基礎上減1 - 自減分紅兩種:後--(a--) 和 前--(--a) 不管是a-- 仍是 --a 都會當即使原變量的值自減1 不一樣的是a-- 和 --a的值不一樣 a-- 是變量的原值 (自減前的值) --a 是變量的新值 (自減之後的值) </pre> <script type="text/javascript"> console.log("第017"); var ziZeng = 1; //使ziZeng自增1 //ziZeng++; //++ziZeng; console.log(ziZeng++); //1 console.log(ziZeng); //2 console.log(++ziZeng); //3 console.log(ziZeng); // 3 var result = ziZeng++ + ++ziZeng + ziZeng; // 3+ 5 + 5 =13 console.log(result); var c = 10; c++; c++; //第一次c++,是在10的基礎上自增 //第二次c++,是在11的基礎上自增 console.log("c = " + c); //12 var d = 20; d = d++; // 20 var e = d++; //20 d = e; //20 console.log("d = "+d); //20 //num--; //--num; var num = 10; console.log(num--); //10 console.log(--num); //8 console.log("num = "+num); //8 </script> <pre> 018. 自增練習 </pre> <script type="text/javascript"> console.log("第018"); var n1=10; var n2=20; var n = n1++; //n1 = 11 n1++ = 10 console.log('n='+n); // 10 console.log('n1='+n1); //11 n = ++n1 //n1 = 12 ++n1 =12 console.log('n='+n); //12 console.log('n1='+n1); //12 n = n2--;// n2=19 n2--=20 console.log('n='+n); //20 console.log('n2='+n2); //19 n = --n2; //n2=18 --n2 = 18 console.log('n='+n); //18 console.log('n2='+n2); //18 </script> <pre> 019. 邏輯運算 JS中爲咱們提供了三種邏輯運算符 ! 非 - !能夠用來對一個值進行非運算 - 所謂非運算就是值對一個布爾值進行取反操做, true變false,false變true - 若是對一個值進行兩次取反,它不會變化 - 若是對非布爾值進行元素,則會將其轉換爲布爾值,而後再取反 因此咱們能夠利用該特色,來將一個其餘的數據類型轉換爲布爾值 能夠爲一個任意數據類型取兩次反,來將其轉換爲布爾值, 原理和Boolean()函數同樣 && 與 - &&能夠對符號兩側的值進行與運算並返回結果 - 運算規則 - 兩個值中只要有一個值爲false就返回false, 只有兩個值都爲true時,纔會返回true - JS中的「與」屬於短路的與, 若是第一個值爲false,則不會看第二個值 || 或 - ||能夠對符號兩側的值進行或運算並返回結果 - 運算規則: - 兩個值中只要有一個true,就返回true 若是兩個值都爲false,才返回false - JS中的「或」屬於短路的或 若是第一個值爲true,則不會檢查第二個值 </pre> <script type="text/javascript"> console.log("第019"); //若是兩個值都是true則返回true var result = true && true; //只要有一個false,就返回false result = true && false; result = false && true; result = false && false; console.log("result = "+result); //false //第一個值爲true,會檢查第二個值 //true && alert("看我出不出來!!"); //常常用到 //第一個值爲false,不會檢查第二個值 //false && alert("看我出不出來!!"); //兩個都是false,則返回false result = false || false; //只有有一個true,就返回true result = true || false; result = false || true ; result = true || true ; console.log("result = "+result); //true //第一個值爲false,則會檢查第二個值 //false || alert("123"); //第一個值爲true,則再也不檢查第二個值 //true || alert("123"); var a = false; //對a進行非運算 a = !a; console.log("a = "+a); //true var b = 10; b = !!b; // b轉換爲boolean爲true,!b是false ,!!b爲true console.log("b = "+b); //true console.log(typeof b); //boolean </script> <pre> 020. 非布爾值的與或運算 - 對於非布爾值進行與或運算時, 會先將其轉換爲布爾值,而後再運算,而且返回原值 - 與運算: - 若是第一個值爲true,則必然返回第二個值 - 若是第一個值爲false,則直接返回第一個值 - 或運算 - 若是第一個值爲true,則直接返回第一個值 - 若是第一個值爲false,則返回第二個值 </pre> <script type="text/javascript"> console.log("第020"); //true && true //與運算:若是兩個值都爲true,則返回後邊的 var result = 5 && 6; console.log(result); //6 //與運算:若是兩個值中有false,則返回靠前的false //false && true result = 0 && 2; console.log(result); //0 result = 2 && 0; console.log(result); //0 //false && false result = NaN && 0; console.log(result); //NaN result = 0 && NaN; console.log(result); //0 //true || true //若是第一個值爲true,則直接返回第一個值 result = 2 || 1; result = 2 || NaN; console.log(result); //2 result = 2 || 0; console.log(result); //2 //若是第一個值爲false,則直接返回第二個值 result = NaN || 1; result = NaN || 0; console.log(result); //0 result = "" || "hello"; //false console.log("result = "+result); // hello result = -1 || "你好"; console.log("result = "+result); // -1 </script> </body> </html>
全部基礎課程連接:javascript
1.JavaScript基礎視頻教程總結(001-010章) 2.JavaScript基礎視頻教程總結(011-020章) 3. JavaScript基礎視頻教程總結(021-030章) 4. JavaScript基礎視頻教程總結(031-040章)html
5. JavaScript基礎視頻教程總結(041-050章) 6. JavaScript基礎視頻教程總結(051-060章) 7. JavaScript基礎視頻教程總結(061-070章) 8. JavaScript基礎視頻教程總結(071-080章)java
9. JavaScript基礎視頻教程總結(081-090章) 10. JavaScript基礎視頻教程總結(091-100章) 11. JavaScript基礎視頻教程總結(101-110章) 12. JavaScript基礎視頻教程總結(111-120章)c++
13. JavaScript基礎視頻教程總結(121-130章) 14. JavaScript基礎視頻教程總結(131-140章)瀏覽器
另外,歡迎關注個人新浪微博函數