JS程序設計基礎2

2.1數據類型與變量

計算機程序就是去處理現實中各種數據
數據:
數據的幾種屬性:名稱、值、類型
JS中的數據:
程序就是對現實中的數據進行加工,所以JS中也必須有相應的數據描述。
(1) 數值型:數值型數據支持多種表示形式
十進制:23,3.14;
八進制:023;(19)
十六進制:0x23(35)
科學計數法:3e2(3×102),3.5e-2(3.5×10-2)

<script>
    alert(1399);
    alert(345)
    alert(023);//八進制
    alert(0x23);//十六進制
    alert(3.5e-2);//科學計數法
</script>

(2)字符串

Typeof() 數據的類型
爲什麼要有數據類型?
生活中是存在不同的數據類型的,計算機要解決生活問題,那麼他就和生活中的數據類型產生了映射,所以有了數據類型。
變量:
變量就是一個內存單元。
Var variable的縮寫變量的意思。聲明一個變量。

var name = "曹鵬飛";

命名的規則:
1、 可以有字母、數字、下劃線和$組成
2、 數字不能開頭(?)
3、關鍵字不能用

命名的原則:見名思義。
規範:
(1)儘量使用英文單詞或者組合,或者專業名詞
weight color
filename(駝峯命名法)
(2)儘量不要使用拼音
變量的值:
變量的類型是由變量的值來決定的。
系統會爲不同的類型分配不同的大小來存儲數據。
如果是布爾類型就分配一個字節的大小來存儲
如果是數字和字符串,那麼根據他的大小和長度來分配字節數來存儲。
JS是弱類型語言,所有的類型的變量都用var來聲明。
JS是動態類型的語言,變量的類型會根據值的變化而變化,不會出錯。
JS語言特點:
更加高級,不嚴謹。
變量不聲明可以直接用。
使用嚴謹的格式,就必須先定義變量才能使用變量。

2.2對象類型

對象在JS當中對應的是object
定義一個狗的對象

<script>
    var dog = {name:"藏藏",type:"藏獒",color:"花色",
    sex:"雄",age:3,marry:false};
    alert (typeof (dog.age));
</script>

狗:
名字:藏藏
品種:藏獒
顏色:花色
年齡:3
是否婚配:否
使用new Object()定義一個對象類型的變量

var dog = new Object();
dog.name="藏藏";
dog.age = 3;
dog.marry = false;

爲什麼有對象?
和爲什麼有數據類型是一樣的。生活中處處有對象,所以js中有這種對象類型。
如何使用對象裏面的屬性?
使用對象名+,+對象屬性名

2.3算術運算符與表達式

常見的算術運算符有 + - × ÷
對應在JS當中的運算符+ - * /
運算的的前提條件是:數值
才能進行運算,如果不是數值,加減乘除運算時就會出錯。
加法運算:

var weight = 65;
weight = weight + 10;
alert(weight);

字符串拼接

var dogName = "zhangsan";
dogName = dogName + "feng";

取餘運算符在JS當中用%表示 作用:得到兩個數的餘數

var num1 = 10;
var num2 = 3;
var result = num1 % num2;
alert(result);

使用技巧:可以解決週期性問題。

var date = 2;/*計算12天后是星期幾*/
date =date + 12 % 7 ;

num++ 和 ++num 的區別
a = num++;
a = ++num;
Num++ 是先用再加;

var num1 = 1;
alert(num1 ++);

等價於

alert(num1);
num1 = num1 + 1;

++ num 是先加再用

var num1 = 1;
alert(++ num1);

等價於

var num1 = 1;
num1 = num1 + 1;
alert(num1);

2.4賦值運算符與表達式

賦值運算是表示將一個數據存儲到某個內存單元中(變量)

var num = 10;

複合賦值運算符

num = num + 10;
num += 10;//兩者完全等價

+= 可以不存在,完全由 普通運算符取代,存在的唯一價值就是簡潔方便。

2.5關係運算符與表達式

生活中常見的關係運算符
大於 小於 等於 大於等於 小於等於 不等於
 < = >= <= !=
判斷兩個數是否相等 使用兩個=號。與生活常識不符合,如何避免判斷兩個數相等時出錯。就是把常量放在等式的前面
把變量放在等式後面。
絕對相等
變量的值和類型都相等,使用 == 來表示
絕對不相等
變量的值和類型都不相等,使用 !== 來表示

<script>
    var num = 2;
    var str = "2";
    alert(num !== str); 
</script>

對比不相等

<script>
    var num = 2;
    var str = "2";
    alert(num != str);
</script>

2.6邏輯運算符


兩者同時成立結果才成立。
第一個關係是true第二個關係也是true那麼結果纔是true
如果有一個或多個爲false時結果爲false
在JS當中用兩個&&表示

<script>
        var num1 = 10;
    var num2 = 20;
    alert(num1 < 20 && num2 > 10);
</script>


至少有一個成立那麼結果就爲true
在JS中用||來表達

<script>
    var num1 = 10;
    var num2 = 20;
    alert(num1 > 20 || num2 > 10);
</script>


結果爲原身的對立面,就是當關系成立時,非之後就變爲不成立。
非true之後結果爲false
在JS中用!來表達

var num = 10;
alert(!(num > 10));

2.7位運算符與表達式

如何得到一個數的二進制。

<script>
    var num = 5;
    //011
    alert(num.toString(2));
</script>

同理得到一個數其他進制數,改變。toString裏面的值
與:
首先要把數轉化爲二進制。
運算法則,只有兩者同時爲1時結果才爲1.其餘結果均爲0
按位運算

var num1 = 5;
var num2 =  6;
alert(num1.toString(2) & num2.toString(2));

或:
兩個數有一個是爲1

var num1 = 5;
var num2 =  6;
var num3 = 3; 
alert(num1.toString(2) | num2.toString(2));

異或:
兩個值相同時結果爲0兩個值不同時爲1

var num1 = 5;
var num2 =  6;
var num3 = 3; 
alert(num1.toString(2) ^ num2.toString(2));

2.8程序設計思維

生活中的程序:
(1)宿舍保修:填寫保修單–>上報宿舍管理員–>聯繫物業–>找維修師傅–>上門維修–>反饋。
(2)銀行開戶:客戶填寫開戶申請單–>提交證件資料–>審覈資料真實性(1.本人、資料真實齊全則通過;2.其他人代辦、有委託書、資料真實齊全則通過)–>錄入系統開戶–>設置密碼–>發放卡、存摺。
解決生活中問題的步驟(流程)描述。
計算機中的程序:
解決問題的步驟描述,但是是用計算機語言描述


這裏寫圖片描述


編程:
根據業務需要,制定或編制解決問題的流程。編制程序的人應該非常熟悉或者精通業務
如果編制計算機程序的要求:
(1)精通業務
(2)精通計算機語言

學習方向:
(1)解決問題的思路
(2)計算機語言
重點是解決問題的思路,思路與計算機沒什麼關係。所有雖然我們學習的是JS,但是更多更重要的又並不是JS內容。
難點是思維的轉變,也就是說從現在開始,需要站在計算機的角度去思考和描述問題。

案例一:計算一個三位數的各位數字之和,比如415的各位之和就是4+1+5=10。

<script>
    /*解決問題的思路
    * (1)提示用戶輸入一個三位數
    * (2)接收輸入存放於num中
    * (3)計算百位b100,除以100取整
    * (4)計算十位b10,對100求餘,除以10取整
    * (5)計算個位b1,對10求餘
    * (6)計算b100+b10+b1
    * (7)輸出結果*/
    var num = prompt("提示輸入一個三位數");
    var b100 = Math.floor(num/100);//math.ceil()上
    var b10 = Math.floor((num%100)/10);
    var b1 = num%10;
    var sum = b100 + b10 + b1;
    alert(sum);
</script>

通過這個案例,我們學到如下知識:
(1)程序設計分爲兩個步驟:思路和編碼。
(2)思路可以使用自然語言、流程圖等一切可以描述清楚解決方案的形式來描述。
(3)將思路翻譯成相應的代碼。
案例二:根據三角形的三邊長計算三角形的面積

<script>
    /*
    * (1)請輸入三角形三邊長,設三邊長分別爲numa、numb、numc
    * (2)先求出半周長   p=(a+b+c)/2
    * (3)再求三角形面積  S = √[p(p-a)(p-b)(p-c)]
    * (4)輸出結果
    * */
    var numa = Number(prompt("請輸入第一條邊長"));  //Number();轉化爲數值類型
    var numb = Number(prompt("請輸入第二條邊長"));  //Number();轉化爲數值類型
    var numc = Number(prompt("請輸入第三條邊長"));  //Number();轉化爲數值類型
    var p = (numa + numb + numc)/2;   //計算半周長
    var s = Math.sqrt(p * (p - numa) * (p - numb) * (p - numc));    //海倫公式
    alert(s);     //輸出結果
</script>

案例三:話費計算器,根據通話時長(單位爲秒)計算話費,資費標準爲0.5元/分鐘。

<script>
    /*
    * (1)提示用戶輸入通話時長,精確到秒
    * (2)接收輸入存放在min,將秒除以60再向上取整
    * (3)資費標準爲0.5元/分鐘
    * (4)計算費用
    * (5)輸出結果
    * */
    var second = Number(prompt("請輸入通話時長"));
    var minute = Math.ceil(second/60); //按分鐘收費,不滿1分鐘的地方按一分鐘收費
    var money = minute * 0.5;
    alert("此次通話產生話費"+money+"元");
</script>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章