// Number console.log(Number(undefined)); //NaN console.log(Number(null)); //0 console.log(Number(true)); // 1 console.log(Number(false)); // 0 console.log(Number('123')); //123 console.log(Number('123a')); //NaN console.log(Number('1.23')); // 1.23 console.log(Number('+123')); //123 console.log(Number('-123')); // -123 console.log(Number('1+23')) // NaN console.log(Number('')); // 0 console.log(Number(' ')); // 0 console.log(Number('1 23'));// NaN console.log(Number('1$%23')); // NaN console.log(Number(' 123')); //123 console.log(Number('1.2.3')); // NaN console.log(Number('.23')); // 0.23 // parseInt() 會試圖將字符串轉爲整型,若是失敗 返回NaN // 若是前面是空格 數字正負號時, 當碰到 第一個不是數字時中止裝換 // 若是不是數字空格直接返回NaN console.log(parseInt(undefined)); //NaN console.log(parseInt(null)); // NaN console.log(parseInt(true)); // NaN console.log(parseInt(false)); // NaN console.log(parseInt('123')); //123 console.log(parseInt('123a')); // 123 console.log(parseInt('1.23')); // 1 console.log(parseInt('+123')); //123 console.log(parseInt('-123')); // -123 console.log(parseInt('1+23')) // 1 console.log(parseInt('')); // NaN console.log(parseInt(' ')); // NaN console.log(parseInt('1 23'));// 1 console.log(parseInt('1$%23')); // 1 console.log(parseInt(' 123')); //123 console.log(parseInt('1.2.3')); // 1 console.log(parseInt('.123')) //NaN // parseFloat 與parseInt沒有太大區別 除了如下幾條 console.log(parseFloat('1.23')); // 1.23 console.log(parseFloat('1.2.3')); // 1.2 console.log(parseFloat('.123')) // 0.123
// undefined null boolean 轉爲String類型 var a = undefined + ''; console.log(typeof a); // string var b = null + ''; console.log(typeof b); // string var c = true.toString(); console.log(typeof c); var num = 20; var d = num.toString(); console.log(d); // 在瀏覽器控制檯中字符類型是黑色的 數字是藍色的
console.log(Boolean('')); // false console.log(Boolean(undefined)); // false console.log(Boolean(null)); // false console.log(Boolean(0)); // false console.log(Boolean(0.0)); // false console.log(Boolean(NaN)); // false console.log(Boolean(' ')); // true console.log(Boolean(1)); // true console.log(Boolean('abc')); // true
console.log(isNaN(NaN)); // true console.log(isNaN('NaN')); // true console.log(isNaN(123)); // false // isFinite: 判斷既不是NaN類型 也不是InFinite類型 console.log(isFinite(123)) // true console.log(isFinite(NaN)); // false console.log(isFinite(Infinity)); // false console.log(isFinite(' ')) // true console.log(isFinite('123 ')) // true console.log(isFinite('123abc')) // false
res = a>b?true:false
(運行效率比if語句高)while瀏覽器
do while函數
forcode
for(var i = 0; i < array.lenght; i++) for(var i in array) // i 是下標 for(var i of array) // i 是元素
// js中循環是能夠有名字的 // 語法格式 名稱:循環語句 // break continue 能夠跳過或終止 帶有標籤名的循環 label1 : for(var i = 0; i < 10; i++){ label2 : for(var j = 0; j < 10; j++){ if(j == 3){ break label1; } console.log(i + ' ' + j); } }
function info(name, age) { document.write(name); document.write(age); } info('lily', '9'); // lily 9 info('lily'); // lily undefined info('lily','9','c','d') // lily 9 // js不定長參數 function printSum(){ sum = 0; for(i in arguments) sum += arguments[i]; return sum } console.log(printSum(1,2,3))
var num = 100; /* * 在js中若是函數內部使用var聲明變量時,在代碼執行過程當中,系統 * 會自動把變量的聲明語句(var )提到函數的最上方,這個操做叫作變量的提高 * */ function fun1 () { console.log(num); // undefined num = num +1 console.log(num); // NaN undefined + 1 = NaN var num = 200 console.log(num); // 200 } fun1();
// 定義一個函數,該函數有兩個參數 // 參數的默認值 // 第一種方式: 在定義形參時,直接賦值 // 第二種方式: a = a||555; // 第三種方式: a = a ? a : 333 function func2(a, b=999){ // a = a||555; a = a ? a : 333 console.log(a); console.log(b); } func2(1,2); func2(4); func2();
// 非即時函數 var a = function(num){ console.log(num); }; a(1233); // 即時函數 (function(num){ console.log(num); })(666); // 通常來講,匿名函數當作一次性函數使用,調用一次結束後, // 通常狀況下會把匿名函數做爲即時函數,可是任何函數均可以 // 即時執行 // 普通函數形式的即時函數 /*(function abc(){ alert('123') })();*/