JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。
- JavaScript 是一种轻量级的编程语言。
- JavaScript 是可插入 HTML 页面的编程代码。
- JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
- JavaScript 很容易学习。
由此可见,在互联网领域,尤其是做前端,JavaScript是一门极为重要的语言。它被嵌入HTML页面后,可以用来规定网页的行为。
在HTML文件中使用script标签可以插入JavaScript代码例如:
<script>
/* JavaScript代码 */
</script>
也可引用外部的脚本文件而不是直接嵌入JavaScript来添加脚本,方法同样是利用script标签,但是要设置它的“src”属性,将它设为脚本文件的地址。如:
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
如果使用 “src” 属性,则 “script” 元素必须是空的。
在本项目中,我们需要使用JavaScript来实现:
- 按键信息的获取
- 数值的运算
- 输入输出框内容的修改和显示
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>计算器</title>
<style type="text/css">
#outBord {
border-style: solid;
width: 292px;
height: 374px;
color: rgb(192, 192, 192);
background-color: rgb(192, 192, 192);
}
.input1 {
background-color: rgb(233, 233, 233);
padding: 0px;
width: 292px;
height: 50px;
border: none;
margin: 0px 0px 2px;
font-size: 20px;
color: rgb(100, 100, 100);
}
.input2 {
text-align: right;
margin: 2px 0px 0px;
}
.button {
background-color: rgb(233, 233, 233);
width: 70px;
height: 50px;
border: none;
margin: 2px 0px;
font-size: 20px;
color: rgb(100, 100, 100);
}
.button1:hover {
background-color: rgb(192, 192, 192);
color: white;
}
.button0 {
width: 144px;
height: 50px;
}
</style>
</head>
<body>
<div id="outBord">
<div>
<input class="input1" id="input">
</div>
<div style="height: 54px;">
<input class="input1 input2" type="button" id="output">
</div>
<div>
<div>
<button id="button_AC" class="button button1" onclick="once_click_AC()">AC</button>
<button id="button_C" class="button button1" onclick="once_click_C()">C</button>
<button id="button_%" class="button button1" onclick="once_click_operater('%')">%</button>
<button id="button_/ " class="button button1 " onclick="once_click_operater('/')">/</button>
</div>
<div>
<button id="button_7 " class="button button1 " onclick="once_click_number('7')">7</button>
<button id="button_8 " class="button button1 " onclick="once_click_number('8')">8</button>
<button id="button_9 " class="button button1 " onclick="once_click_number('9')">9</button>
<button id="button_* " class="button button1 " onclick="once_click_operater('*')">*</button>
</div>
<div>
<button id="button_4 " class="button button1 " onclick="once_click_number('4')">4</button>
<button id="button_5 " class="button button1 " onclick="once_click_number('5')">5</button>
<button id="button_6 " class="button button1 " onclick="once_click_number('6')">6</button>
<button id="button_- " class="button button1 " onclick="once_click_operater('-')">-</button>
</div>
<div>
<button id="button_1 " class="button button1 " onclick="once_click_number('1')">1</button>
<button id="button_2 " class="button button1 " onclick="once_click_number('2')">2</button>
<button id="button_3 " class="button button1 " onclick="once_click_number('3')">3</button>
<button id="button_+ " class="button button1 " onclick="once_click_operater('+')">+</button>
</div>
<div>
<button id="button_0 " class="button button1 button0 " onclick="once_click_number('0')">0</button>
<button id="button_. " class="button button1 " onclick="once_click_number('.')">.</button>
<button id="button_=" class=" button button1 " onclick="once_click_operater('=')">=</button>
</div>
</div>
</div>
<script type="text/javascript">
var para1 = "";
var para2 = "";
var resault = "";
var operator = "";
var flowControl = 0;
function once_click_AC() {
para1 = "";
para2 = "";
resault = "";
operator = "";
flowControl = 0;
show_expression();
}
function once_click_C() {
if (flowControl == 0) {
para1 = "";
} else if (flowControl == 1) {
para2 = "";
} else if (flowControl == 2) {
resault = "";
}
show_expression();
}
function once_click_number(date) {
if (flowControl == 0) //
{
para1 += date;
} else if (flowControl == 1) {
para2 += date;
} else if (flowControl == 2) {
flowControl = 0;
para1 = "";
para2 = "";
resault = "";
operator = "";
para1 += date;
}
show_expression();
}
function canculate_resualt() {
var paraInt1 = parseFloat(para1);
var paraInt2 = parseFloat(para2);
var resaultInt;
if (!((operator == "") || (para2 == ""))) {
if (operator == "+") {
resaultInt = paraInt1 + paraInt2;
} else if (operator == "-") {
resaultInt = paraInt1 - paraInt2;
} else if (operator == "*") {
resaultInt = paraInt1 * paraInt2;
} else if (operator == "/") {
resaultInt = paraInt1 / paraInt2;
} else if (operator == "%") {
resaultInt = paraInt1 % paraInt2;
}
resault = resaultInt.toString();
return true;
} else {
return false;
}
}
function show_expression() {
var inputBox = para1 + operator + para2;
document.getElementById("input").value = inputBox;
document.getElementById("output").value = resault;
}
function once_click_operater(oper) {
if (flowControl == 0) //
{
if (!(para1 == "")) {
operator = oper;
flowControl++;
}
} else if (flowControl == 1) {
if (oper == "=") {
if (canculate_resualt() == true) {
flowControl = 2;
}
} else {
if (canculate_resualt() == true) {
para1 = resault;
para2 = "";
resault = "";
operator = oper;
}
}
} else if (flowControl == 2) {
if (!(oper == "=")) {
para1 = resault;
para2 = "";
resault = "";
operator = oper;
flowControl = 1;
} else {
if (canculate_resualt() == true) {
flowControl = 2;
}
}
}
show_expression();
}
</script>
</body>
</html>
函数once_click_AC()、once_click_C()、once_click_number()、once_click_operater()实现按键信息的采集和响应,canculate_resualt()计算结果,show_expression()显示输入输出框。
效果大致如下: