<script>
? ? //變量的交換
//? var a=10;
//? var b=30;
//? var ls=a;
//? ? a=b;
//? ? b=ls;
//? console.log(b);
//? console.log(a);
//聲明了但未賦值和變量的覆蓋,如果存在相同的變量,則優(yōu)先執(zhí)行下面的變量的值
// var a;
// var b=20;
// var b=30;
// console.log(a);
// console.log(b);
// 關(guān)鍵字:var 聲明變量? typeof 檢測數(shù)據(jù)類型
//關(guān)系運算符:之間存在的隱式類型轉(zhuǎn)換:
// 1算數(shù)運算符:+,-,*,/,%
//? ? +:只要兩邊出現(xiàn)字符,就是字符的累加
//? ? -,%,/,*:數(shù)值的運算
// 2關(guān)系運算符:<,<=,==,===,>,>=
//? ? 除了===;其他的只要兩邊出現(xiàn)數(shù)值,就是數(shù)值的比較
//? ? 只有當(dāng)兩邊都是字符的時候,才逐位比較,
//? ? ===:不存在隱式類型轉(zhuǎn)換,因為她不僅比較數(shù)值,還會比較數(shù)據(jù)的類型
// 3邏輯運算符 && || ! :true和false為值
//4 賦值運算符=,+=,-=,8=,%=,++,--
? ? // 與算數(shù)運算符一樣
? ? // 強制的類型轉(zhuǎn)換:
? ? // 1.字符轉(zhuǎn)數(shù)值
? ? // parseInt():想當(dāng)于取一個整數(shù),遇到字符就停止轉(zhuǎn)換,不能識別小數(shù)點
? ? // parseFloat();可以識別小數(shù)點,遇到除小數(shù)點以外的自讀自動停止
? ? //Number():嚴格轉(zhuǎn)換,遇見除小數(shù)點以外的字符,立即NaN
? ? // Math.round():嚴格轉(zhuǎn)換,小數(shù)點以外的字符立即NaN,取最近的整數(shù),有四舍五入的效果
? ? // var a="123.45f8"
? ? // var b="123.458"
? ? // console.log(parseInt(a));
? ? // //結(jié)果123
? ? // console.log(parseFloat(a));
? ? // //結(jié)果123.45
? ? // console.log(Number(b));
? ? // //結(jié)果123.458
? ? // console.log(Math.round(b));
? ? // //結(jié)果123
? ? // 2,數(shù)值轉(zhuǎn)字符
? ? // num.toString():相當(dāng)于加了個"",直接轉(zhuǎn)成字符
? ? // num.toFixed(n):可以識別小數(shù)點,n表示保留幾位小數(shù),可以四舍五入
? ? // var num=123.456
? ? // console.log(num.toString());
? ? // console.log(num.toFixed(2));
? ? // 什么是NaN:錯誤的數(shù)值運算或轉(zhuǎn)換
? ? // isNaN:判斷是不是NaN的關(guān)鍵字,如果為true,說明數(shù)據(jù)的轉(zhuǎn)換或者運算發(fā)生錯誤,得到NaN,如果為false,說明數(shù)據(jù)的轉(zhuǎn)換和運算時正確的,不是NaN
? ? // 在isNaN的小括號內(nèi)會發(fā)生數(shù)據(jù)的隱式類型轉(zhuǎn)換,自動轉(zhuǎn)換為數(shù)值
? ? ? ? // var a="ddd";
? ? ? ? // var b="123"
? ? ? ? // console.log(isNaN(a));
? ? ? ? // //true
? ? ? ? // console.log(isNaN(b));
? ? ? ? // //flase
? ? // 進制之間的轉(zhuǎn)換:只有十進制是數(shù)值,其他進制都是字符
? ? //1,十進制轉(zhuǎn)其他進制,數(shù)值轉(zhuǎn)字符
? ? // var num=27;
? ? // console.log(num.toString(2));
? ? // //轉(zhuǎn)二進制
? ? // // 2,其他進制轉(zhuǎn)十進制,字符轉(zhuǎn)數(shù)值
? ? // var a=100111;
? ? // console.log(parseInt(a,2))
? ? // //將a作為2進制轉(zhuǎn)換成十進制
? ? // 分支結(jié)構(gòu)中的分支語句
? ? // if(){
? ? // }
? ? // if()小括號內(nèi)存在的隱式類型轉(zhuǎn)換:if中存在的數(shù)據(jù)類型為布爾型,如果不是,隱式轉(zhuǎn)換會自動轉(zhuǎn)換為布爾型
? ? ? ? // 1.數(shù)值,非0為true;
? ? ? ? // 2.字符,非空位true;
? ? ? ? // 3.數(shù)組,對象都是true;
? ? ? ? // 4.函數(shù),true;
? ? ? ? // 5.undefined,NaN,null;為false
? ? ? ? //? var a;
? ? ? ? // console.log(typeof a);
? ? ? ? // console.log(a);
? ? ? ? // console.log(undefined === a);
? ? ? ? // //循環(huán)語句
? ? ? ? // var i=2
? ? ? ? // while(i<4){
? ? ? ? //? ? console.log("這是一個循環(huán)while語句");
? ? ? ? //? ? i++
? ? ? ? // }
? ? ? ? // while:語句名
? ? ? ? // ()循環(huán)條件
? ? ? ? // {}循環(huán)體
? ? ? ? // while語句容易造成死循環(huán):死循環(huán):無法通過自身結(jié)束的循環(huán)
? ? ? ? // var i=1;
? ? ? ? // do{
? ? ? ? //? ? console.log("輸出兩次")
? ? ? ? //? ? i++;
? ? ? ? //? ? }
? ? ? ? // while(i<3){
? ? ? ? //? ? console.log("輸出")
? ? ? ? // }
? ? ? ? // do{}while(){}
? ? ? ? // do:語句名1
? ? ? ? // {}循環(huán)體1
? ? ? ? // while:語句名2
? ? ? ? // ()循環(huán)條件:當(dāng)為true時執(zhí)行循環(huán)體1,當(dāng)為false時執(zhí)行循環(huán)體2
? ? ? ? // {}循環(huán)體2
? ? ? ? //循環(huán)中的關(guān)鍵字:break:立即結(jié)束當(dāng)前循環(huán),從執(zhí)行到break 后面的代碼都不再執(zhí)行
? ? ? ? ? ? ? ? ? ? ? ? // continue:立即跳過本次循環(huán),從執(zhí)行到continue? 后面的代碼都不再執(zhí)行
? ? ? ? // for(){}
? ? ? ? // for:語句名
? ? ? ? // ()循環(huán)條件
? ? ? ? // {}循環(huán)體
? ? ? ? // demo:
? ? ? ? // 1.計算1+2+3+...100
? ? ? ? //? ? var sum=0;
? ? ? ? // for(var i=1;i<=100;i++){
? ? ? ? //? ? sum+=i;
? ? ? ? // }
? ? ? ? // console.log(sum);
? ? ? ? ? ? // 2.計算1~100偶數(shù)的和
? ? ? ? ? ? // var sum=0;
? ? ? ? ? ? // for(var i=1;i<=100;i++){
? ? ? ? ? ? //? ? if(i%2==0){
? ? ? ? ? ? //? ? ? ? sum+=i;
? ? ? ? ? ? //? ? }
? ? ? ? ? ? // }
? ? ? ? ? ? // console.log(sum);
? ? ? ? ? ? // 3.計算10的階乘
? ? ? ? ? ? ? ? // var a=1;
? ? ? ? ? ? ? ? // for(var i=1;i<=10;i++){
? ? ? ? ? ? ? ? //? ? a*=i;
? ? ? ? ? ? ? ? // }?
? ? ? ? ? ? ? ? // console.log(a);
? ? ? ? ? ? ? ? // 4.計算100-999之間的水仙花數(shù)
? ? ? ? ? ? ? ? for(i=100;i<=999;i++){
? ? ? ? ? ? ? ? ? ? var a=parseInt(i/100);
? ? ? ? ? ? ? ? ? ? var b=parseInt(i/10)%10;
? ? ? ? ? ? ? ? ? ? var c=i%10;
? ? ? ? ? ? ? ? ? ? if(a*a*a+b*b*b+c*c*c===i){
? ? ? ? ? ? ? ? ? ? ? ? console.log(i);
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? ? ? // 難點:循環(huán)的嵌套
? ? ? ? ? ? // demo:
? ? ? ? ? ? //? 1.計算10的階乘的和
? ? ? ? ? ? //? ? var sum=0;
? ? ? ? ? ? //? ? for(var j=1;j<=3;j++){
? ? ? ? ? ? //? ? var a=1;
? ? ? ? ? ? //? ? for(var i=1;i<=j;i++){
? ? ? ? ? ? //? ? a*=i;
? ? ? ? ? ? // }
? ? ? ? ? ? //? ? sum+=a;
? ? ? ? ? ? // }
? ? ? ? ? ? // console.log(sum);
? ? ? ? ? ? ? ? // 2.打印一個三角形
? ? ? ? ? ? //? ? for(j=1;j<=10;j++){
? ? ? ? ? ? //? ? for(var i=1;i<=j;i++){
? ? ? ? ? ? //? ? ? ? document.write("*");
? ? ? ? ? ? //? ? }
? ? ? ? ? ? //? ? ? ? document.write("<br>")
? ? ? ? ? ? //? ? }
? ? ? ? ? ? //? 3.打印一個倒三角形
? ? ? ? ? ? //? ? ? ? for(j=1;j<=10;j++){
? ? ? ? ? ? //? ? ? ? for(var i=10;i>=j;i--){
? ? ? ? ? ? //? ? ? ? document.write("*");
? ? ? ? ? ? //? ? }
? ? ? ? ? ? //? ? ? ? document.write("<br>")
? ? ? ? ? ? //? ? }
? ? ? ? ? ? ? ? // 4.打印一個9*9乘法表
? ? ? ? ? ? ? ? // for(j=1;j<=9;j++){
? ? ? ? ? ? ? ? //? ? for(i=1;i<=j;i++){
? ? ? ? ? ? ? ? //? ? document.write(i+"*"+j+"="+i*j+" ");
? ? ? ? ? ? ? ? // }
? ? ? ? ? ? ? ? //? ? document.write("<br>")
? ? ? ? ? ? ? ? // }
? ? ? ? ? ? //循環(huán)中的浮點數(shù)的精度問題:
? ? ? ? ? ? // console.log(parseFloat(0.1+0.7));
? ? ? ? ? ? //? ? //結(jié)果:0.799999
? ? ? ? ? ? // console.log(parseFloat(0.1+0.7).toFixed(1));
? ? ? ? ? ? //? ? //結(jié)果:0.8