在js中,當運算符在運算時,若是兩邊數據不統一,CPU就沒法計算,這時咱們編譯器會自動將運算符兩邊的數據作一個數據類型轉換,轉成同樣的數據類型再計算。html
這種無需程序員手動轉換,而由編譯器自動轉換的方式就稱爲隱式轉換。java
例如1 > "0"這行代碼在js中並不會報錯,編譯器在運算符時會先把右邊的"0"轉成數字0`而後在比較大小。程序員
var n1 = 123; var n2 = '123'; var n3 = n1+n2; // 隱式轉換 console.log(typeof n3);
強制類型轉換是很是經常使用的技術,雖然它曾經致使了不少隱蔽的 BUG ,可是咱們不該該因噎廢食,只有理解它的原理才能享受其帶來的便利並減小 BUG 的產生。ui
var n1 = 123; // 強制類型轉換String(),toString() var str1 = String(n1); console.log(typeof str1); var num = 234; console.log(num.toString())
var stringNum = '789.123wadjhkd'; var num2 = Number(stringNum); console.log(num2) // parseInt()能夠解析一個字符串 而且返回一個整數 console.log(parseInt(stringNum)) console.log(parseFloat(stringNum));
var b1 = '123'; var b2 = 0; var b3 = -123 var b4 = Infinity; var b5 = NaN; var b6; //undefined var b7 = null; // 非0既真 console.log(Boolean(b7))
JavaScript的流程控制語法和java的很類似,因此你們能夠看個人java基礎-流程控制和流程控制(續) 內容比這個寫的詳細spa
var ji = 20; if(ji >= 20){ console.log('恭喜你,吃雞成功,大吉大利') } alert('alex');//下面的代碼還會執行
var ji = 20; if(ji>=20){ console.log('恭喜你,吃雞成功,大吉大利') }else{ console.log('很遺憾 下次繼續努力') }
if (true) { //執行操做 }else if(true){ //知足條件執行 }else if(true){ //知足條件執行 }else{ //知足條件執行 }
案例1:code
//1.模擬 若是總分 >400 而且數學成績 >89分 被清華大學錄入 //邏輯與&& 兩個條件都成立的時候 才成立 if(sum>400 && math>90){ console.log('清華大學錄入成功') }else{ alert('高考失利') }
案例2:htm
//2.模擬 若是總分>400 或者你英語大於85 被複旦大學錄入 //邏輯或 只有有一個條件成立的時候 才成立 if(sum>500 || english>85){ alert('被複旦大學錄入') }else{ alert('高考又失利了') }
var gameScore = 'better'; switch(gameScore){ //case表示一個條件 知足這個條件就會走進來 遇到break跳出。若是某個條件中不寫 break,那麼直到該程序遇到下一個break中止 case 'good': console.log('玩的很好') //break表示退出 break; case 'better': console.log('玩的老牛逼了') break; case 'best': console.log('恭喜你 吃雞成功') break; default: console.log('很遺憾') }
循環三步走:blog
1.初始化循環變量ip
2.判斷循環條件字符串
3.更新循環變量
var i = 1; //初始化循環變量 while(i<=9){ //判斷循環條件 console.log(i); i = i+1; //更新循環條件 }
//無論有沒有知足while中的條件do裏面的代碼都會走一次 var i = 3;//初始化循環變量 do{ console.log(i) i++;//更新循環條件 }while (i<10) //判斷循環條件
for(var i = 1;i<=10;i++){ console.log(i) }
for循環能夠嵌套使用。