Javascript計(jì)算器練習(xí)
<!DOCTYPE html>
<html>
?<head>
? <title> 事件</title> ?
? <script type="text/javascript">
? ?function count(){
? ? ? ?var input1,input2,get1,results;
? ? //獲取第一個輸入框的值
? ? input1=parseInt(document.getElementById("txt1").value);
//獲取第二個輸入框的值
? ? ?input2=parseInt(document.getElementById("txt2").value);
//獲取選擇框的值
? ? get1=document.getElementById('select').value;
//獲取通過下拉框來選擇的值來改變加減乘除的運(yùn)算法則
? ? //設(shè)置結(jié)果輸入框的值?
? switch(get1){
? ? ? case '+':
? ? ?results=input1+input2;
? ? ?break;
? ? ? ? case '-':
? ? ?results=input1-input2;
? ? ?break;
? ? ? ?case '*':
? ? ?results=input1*input2;
? ? ?break;?
? ? ? ? case '/':
? ? ?results=input1/input2;
? ? ?break;
? }
? document.getElementById('fruit').value=results;
? ?}
? </script>?
?</head>?
?<body>
? ?<input type='text' id='txt1' />?
? ?<select id='select'>
<option value='+'>+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
? ?</select>
? ?<input type='text' id='txt2' />?
? ?<input type='button' value=' = ' onClick="count()" /> <!--通過 = 按鈕來調(diào)用創(chuàng)建的函數(shù),得到結(jié)果-->?
? ?<input type='text' id='fruit' /> ??
?</body>
</html>
前兩個輸入的數(shù)值為什么要加parseInt轉(zhuǎn)化?value得到不是數(shù)值嗎?
2015-12-22
js是弱類型的語言,你取出來的值他也不知道應(yīng)該是什么類型。當(dāng)你用 + 時,因?yàn)樽址部梢韵嗉?,所以他就?dāng)字符串處理了。- * / 只有數(shù)字有,所以他就會自動轉(zhuǎn)成數(shù)字。?
2015-12-26
JS中的'+'有兩重含義(二義運(yùn)算符):字符連接符和四則運(yùn)算符加,在沒有確切指出運(yùn)算類型的情況下使用字符運(yùn)算這層含義。元素的value返回的是字符串,只有在轉(zhuǎn)化為數(shù)值時進(jìn)行四則運(yùn)算才能得出正確結(jié)果。而'-''*''/'均為一義運(yùn)算符,只有兩邊均為數(shù)值類型時才返回結(jié)果。
查看一下將'txt1'和'txt2'填入非數(shù)值字符后進(jìn)行四則運(yùn)算的結(jié)果,很有意思呢。