javascript快速入門2--變數,小學生數學與簡單的互動

水之原發表於2013-12-01

變數

對於變數的理解:變數是資料的代號。如同人的名字一樣。

    var num;//在JavaScript中使用關鍵字var宣告一個變數

 

在JavaScript中,使用上面的語法,就可以宣告一個變數,以便在之後給其指定值.

    var num;
    num=128;//這樣,就將num做為值128的一個名字,有了名字,就可以在之後引用!
    document.write(num);//輸出128

 

貌似下面的程式碼和上面的具有一樣的輸出

    document.write(128);//這樣當然也輸出了128

 

不過再試試下面的程式碼

    document.write(3.14159265358979);//我們要多次輸出這個值
    document.write(3.14159265358979);
    document.write(3.14159265358978);
    document.write(3.14159265358979);
    document.write(3.14159265358979);

 

於是可以用變數的概念來偷懶

    var num;
    num=3.14159265358979;
    document.write(num);
    document.write(num);
    document.write(num);
    document.write(num);
    document.write(num);

 

雖然看上去沒節約多少筆墨,但有一個概念即是:我們使用document.write多次輸出的是同一個值!而前面一塊則不同,它在每次輸出時產生了一個新的值,顯而易見,使用變數可以清楚的表達我們想要做的,而且簡短的變數名引用可以使程式碼更清晰且不容易出錯! 當然,名字不是亂取的,變數的命名有一些限制:只能包含字母,數字,和下劃線,還有個特殊的$字元,並且變數名只能以字母,下劃線,還有$開頭;另外,還不能使用JavaScript關鍵字和保留字;所以說,下面的變數宣告全是錯誤的

    var 34bad;//不能以數字開頭
    var per人;//不能包含中文
    var bad-var;//非法的-
    var var;//var就是一個關鍵字,所以很明顯不能用來做變數名

 

另外要注意的一點是,變數的名稱是區分大小寫的!

值,型別

    var dog;
    dog="小虎子";//字串,它們總被包含在雙引號(或單號)中
    var num;
    num=1;//數字,它們裸露的出現了
    var strNum;
    strNum="1";//但是現在strNum所引用的是一個字串,因為它被包含在引號中了
    var badNum;
    badNum=3.345;//一個小數,因為它帶有一個小數點
    badNum=.2;//仍然是一個小數,這句程式碼與badNum=0.2是一樣的!
    badNum = 0.4.5;//當然,這句程式碼是錯的,一個非法數字

 

上面那樣的寫法(為了演示),我已經不想再忍受了,完全可以這樣宣告變數

    var dog,num,strNum,badNum;//可以一次宣告多個變數,它們用逗號分隔,然後再賦值
    dog="小虎子";
    num=1;
    ..........................

 

當然還有另一種宣告變數的方法,事實上這種風格才是最常見的

    var dog="小虎子";
    var num=1;
    var str="some string",strNum="123";
    ......

 

數字(只能有整數或小數),字串可能最常用的了,還有另一種型別:布林值(Boolean).不像數字或字串,有無限種可能的值,Boolean值只有兩種可能:真,假

    var bool=true;//用true表示真值
    bool=false;//用false表示假值

 

JavaScript是動態型別語言,在宣告變數時無需指明其型別,在執行時刻變數的值可以有不同的型別。

    var s="Hello,World!!!";//無需指明為字串型別
    s=1.61803;//在執行時將變數值指定為另一個型別

 

JavaScript的變數型別不止字串,數字,布林值這三種,然而這三種確是最常用的了。其它資料型別(參考):

複合(引用)資料型別是:
* 物件
* 陣列
特殊資料型別是:
* Undefined
       //事實上,我們接觸的第一個資料型別是Undefined,它的含義是"未定義值"
       var a;//宣告一個變數,但沒有對其賦值
       alert(a);//但它仍然有值的,它的值為undefined
       alert(b);//但注意,輸出一個未定義的變數將出現錯誤,而不是輸出undefined

 

字串

字串相連

    var s1="Hello,";
    s1=s1+"World!";
    alert(s1);
    s1+="!!!!";
    alert(s1);

 

數學運算與比較

首先是小學生都會的加減乘除:+,-,*,/

    //加法 + 
    //減法 -
    //乘法 *
    //除法 / 
    //自增 ++
    //自減 --
    var a = 12;
    var b = 30;
    var c = a+b;
    alert(c);//輸出42
    c=b-a;
    alert(c);//輸出18
    c=c*2;
    alert(c);//輸出36
    c=c/2;
    alert(c);//輸出18
    c = 12;
    c++;//這與c=c+1;效果是一樣的
    alert(c);//輸出13
    c--;//這與c=c-1;效果是一樣的
    alert(c);//輸出11
    //自增與自減運算子出現的地方也有講究
    c=20;
    alert(c++);//輸出20,因為++寫在變數後面,這表示變數c完成運算之後,再將其值增1
    alert(c);//現在將輸出21,自減運算子也與些相似
    //如果只是類似這樣的計算
    c = c+12;
    //可以這樣寫
    c+= 12;//這與寫c= c+12;效果是一樣的
    //類似其它的運算也有簡便的方法
    c-=3;//c=c-3
    c*=4;//c=c*3;
    c/=2;//c=c/2;

 

要注意的是,在JavaScritp中,連線字串時也使用“+”號。當字串與數字相遇時?——JavaScript是弱型別語言

    var num=23+45;
    alert("23+45等於"+num);//表示式從左往右計算,字串之後的數字都會當成字串然連線
    alert("23+45="+(23+45));//使用括號分隔

 

比較操作符:<,>,<=,>=,==,!=,!;比較操作符返回布林值

    //小於 <
    //大於 >
    //小於或等於 <=
    //大於或等於 >=
    //相等 ==
    //不相等 !=
    alert(2<4);//返回true
    alert(2>4);//返回false
    alert(2<=4);//返回true
    alert(2>=2);//返回true
    alert(2==2);//返回true
    alert(2!=2);//返回true

 

表示式的組合

    alert( (2<4)==(5>3)==(3<=3)==(2>=2)==(2!=2)==(2==2)==true );

 

邏輯運算子

邏輯運算子用於對布林值進行比較

    // &&邏輯與,當兩邊的值都為true時返回true,否則返回false
    // || 邏輯或,當兩邊值都為false時返回false,否則返回true
    // ! 邏輯非
    alert(true && false);//輸出false
    alert(true && true);//輸出true
    alert(true || false);//輸出true
    alert(false || false);//輸出false
    alert(!true);//輸出false

 

型別轉換入門

由於JavaScript是弱型別語言,所以我們完全可以將字串和數字(兩個不同型別的變數)進行相加,這個我們在前面已經演示過了.當然,不僅僅可以將字串和數字相加,還可以將字串與數字相乘而不會出現指令碼錯誤!

    var str ="some string here!";
    var num = 123;
    alert(str*num);//將輸出NaN,因為乘法運算子只能針對數字,所以進行運算時計算機會將欄位串轉換成數字
    //而這裡的字串轉換成數字將會是NaN
    //NaN是一個特殊的值,含義是"Not A Number"-不是一個數字,當將其它值轉換成數字失敗時會得到這個值
    str ="2";
    alert(str*num);//將輸出246,因為str可以解析成數字2

 

其它型別轉換

    var bool = true;
    alert(bool*1);//輸出1 ,布林值true轉換成數字為1,事實上將其它值轉換在數字最簡單的方法就是將其乘以1
    bool = false;
    alert(bool*1);//輸出0
    alert(bool+"");//輸出"flase",將其它型別轉換成字串的最簡單的方法就是將其寫一個空字串相連
    alert(123+"");//數字總能轉換成字串
    var str = "some string";
    alert(!!str);//true,因為非運算子是針對布林值進行運算的,所以將其它型別轉換成布林值只須將其連續非兩次
    str ="";
    alert(!!str);//輸出false,只有空字串轉換成布林值時會是false,非空字串轉換成布林值都會返回true
    var num =0;
    alert(!!num);//false
    num=-123.345;
    alert(!!num);//true,除0以外的任何數字轉換成布林值都會是true
    //還有一個非常重要的是,空字串轉換成數字將會是0
    alert(""*1);//輸出0

 

獲取變數型別 typeof 運算子

    var bool = true;
    alert(typeof bool);//輸出boolean
    var num =123;
    alert(typeof num);//輸出number
    var str = "some string here";
    alert(typeof str);//輸出string
    var strNum = "123";
    alert(typeof strNum);//輸出string
    strNum *= 1;
    alert(typeof strNum);//輸出number

 

根據使用者的輸入進行計算

使用window.prompt可以彈出包含輸入框的視窗,使用者輸入的內容將是此函式的返回值

    var msg = window.prompt("請輸入一個數字","預設值");//prompt方法包含一個必須引數和一個可選引數。
    //第一個引數是必須的,將在視窗中顯示的文字,第二個引數是可選的,為文字框的預設值
    alert(msg);//將輸出我們輸入進去的東西

 

請使用者輸入年齡,我們計算出他活了多少秒(貌似無聊的很啊)

    var age=window.prompt("請輸入您的年齡!","18");
    var liveSeconds=age*365*24*3600;
    alert("您已經度過了"+liveSeconds+"秒!");

 

相關文章