欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript實(shí)現(xiàn)簡易計(jì)算器案例

 更新時(shí)間:2022年07月29日 14:25:10   作者:ZJQ12334  
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡易計(jì)算器案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下<BR>

本文實(shí)例為大家分享了JavaScript模仿windows計(jì)算器,供大家參考,具體內(nèi)容如下

功能:

1、實(shí)現(xiàn)單機(jī)按鈕錄入數(shù)字
2、實(shí)現(xiàn)基礎(chǔ)四則運(yùn)算功能,并添加必要的異常處理,例如,除數(shù)為0
3、實(shí)現(xiàn)小數(shù)點(diǎn)功能并添加異常處理:小數(shù)點(diǎn)只能出現(xiàn)一次
4、實(shí)現(xiàn)正負(fù)號功能
5、實(shí)現(xiàn)退位功能,已經(jīng)是最后一位時(shí),顯示框顯示為0
6、清屏功能

項(xiàng)目原型

<!DOCTYPE html>
<html lang="en">
<head>
? <meta charset="UTF-8">
? <title>Document</title>
? <link rel="stylesheet" type="text/css" href="../index.css/index.css" >
? <script type="text/javascript" src="../index.js/index.js"></script>
? <script type="text/javascript" src="../index.js/index1.js"></script>
</head>
<body onload="jiazai(),o()">
? <div class="div1">
? ? <div class="div2">
? ? ? <input type="text" name="num" id="num">
? ? </div>
? ? <div class="div3">
? ? ? <input type="button" value="c">
? ? ? <input type="button" value="←">
? ? ? <input type="button" value="+/-">
? ? ? <input type="button" value="/">
? ? ? <input type="button" value="1">
? ? ? <input type="button" value="2">
? ? ? <input type="button" value="3">
? ? ? <input type="button" value="*">
? ? ? <input type="button" value="4">
? ? ? <input type="button" value="5">
? ? ? <input type="button" value="6">
? ? ? <input type="button" value="-">
? ? ? <input type="button" value="7">
? ? ? <input type="button" value="8">
? ? ? <input type="button" value="9">
? ? ? <input type="button" value="+">
? ? ? <input type="button" value="0">
? ? ? <input type="button" value=".">
? ? ? <input type="button" value="=">
? ? ? <input type="button" value="d" id="baidu">
? ? </div>
? </div>
</body>
</html>
*{
? margin: 0;
}

.div1{
? /*width: 170px;*/
? position: absolute;
? top: 60px;
? left: 200px;
? margin-left: 5px;
}

.div1 .div2 input{
? width: 170px;
? text-align: right;
? background-color: white;
? border:1px solid black;?
? padding-right: 10px;
? box-sizing: border-box;
}

.div1 .div3 input{
? width: 35px;
? margin-right: 5px;
? margin-top: 5px;
??
}
.div1 .div3{
? width: 190px;
}

.div1 .div3 input:hover{
? background-color: #abcdef;
? border:1px solid black;
? border-radius: 5px;
}

小數(shù)點(diǎn)功能的實(shí)現(xiàn)

1、小數(shù)點(diǎn)只能出現(xiàn)一次
2、再小數(shù)點(diǎn)case這里直接函數(shù)調(diào)用
3、技術(shù)點(diǎn):indexof(),查找字符是否存在,存在的話返回大于0,不存在的話返回-1

//小數(shù)點(diǎn)
function xiaoshu(n){
? if (n.indexOf('.')==-1) {
? ? num.value=n+'.';
? }else{
? ? num.value=n;
? }
}

? ? case '.':
? ? xiaoshu(num.value);
? ? break; ?
1

進(jìn)行非數(shù)字和數(shù)字的判斷

回退鍵的實(shí)現(xiàn)

需求:將文本框中的最后一個字符刪掉后,保留文本框中的其他內(nèi)容
1、文本框里面有123,按下退位鍵保留12 , 再次按下保留1
2、當(dāng)文本框內(nèi)只剩下1的時(shí)候,再次按下退位鍵,文本框恢復(fù)到默認(rèn)狀態(tài)0

正負(fù)號

1、輸入123,第一次單機(jī)添加 “-” ,再次單機(jī)顯示+
2、如果數(shù)字前面有符號那就取消,沒有符號就加上,類似開關(guān)按鈕

JS代碼

function jiazai(){
? //獲取文本框的ID
? var num = document.getElementById('num');
? //在腳本中設(shè)置input文本框的value值為0
? num.value = '0';
? //設(shè)置input文本框?yàn)椴豢蛇x中狀態(tài)
? num.disabled = 'disabled';
? //獲取標(biāo)簽名為input的所有標(biāo)簽
? var btn = document.getElementsByTagName('input');
? var xin;//定義一個接受新的值
? var bb;//定義一個符號判斷給=,具體用來+-*/
? for(var i=0;i<btn.length;i++){
? ? //給input所有按鈕綁定 onclick事件
? ? btn[i].onclick = function(){
? ? ? //判斷如過是數(shù)字
? ? ? if (isNumber(this.value)) {
? ? ? ? if (isNull(num.value)) {
? ? ? ? ? num.value = this.value;
? ? ? ? }else{
? ? ? ? ? num.value = num.value+this.value;
? ? ? ? }
? ? ? }//否則,如果是非數(shù)字的話
? ? ? else{
? ? ? ? //獲取非數(shù)字
? ? ? ? var feishuzi = this.value;
? ? ? ? //多條件分支判斷
? ? ? ? switch(feishuzi){
? ? ? ? ? case '+':
? ? ? ? ? xin = Number(num.value);
? ? ? ? ? num.value = 0;
? ? ? ? ? bb ='+';
? ? ? ? ? break;
? ? ? ? ? case '-':
? ? ? ? ? xin = Number(num.value);
? ? ? ? ? num.value = 0;
? ? ? ? ? bb ='-';
? ? ? ? ? break;
? ? ? ? ? case '*':
? ? ? ? ? xin = Number(num.value);
? ? ? ? ? num.value = 0;
? ? ? ? ? bb ='*';
? ? ? ? ? break;
? ? ? ? ? case '/':
? ? ? ? ? xin = Number(num.value);
? ? ? ? ? num.value = 0;
? ? ? ? ? bb ='/';
? ? ? ? ? break;
? ? ? ? ? case 'c':
? ? ? ? ? num.value = 0;
? ? ? ? ? break;
? ? ? ? ? case '←':
? ? ? ? ? num.value = fn(num.value);
? ? ? ? ? break;
? ? ? ? ? case '+/-':
? ? ? ? ? num.value =sign(num.value);
? ? ? ? ? break;
? ? ? ? ? case '.':
? ? ? ? ? xiaoshu(num.value);
? ? ? ? ? break;
? ? ? ? ? case '=':
? ? ? ? ? switch(bb){
? ? ? ? ? ? case '+':
? ? ? ? ? ? num.value = xin+Number(num.value);
? ? ? ? ? ? break;
? ? ? ? ? ? case '-':
? ? ? ? ? ? num.value = xin-Number(num.value);
? ? ? ? ? ? break;
? ? ? ? ? ? case '*':
? ? ? ? ? ? num.value = xin*Number(num.value);
? ? ? ? ? ? break;
? ? ? ? ? ? case '/':
? ? ? ? ? ? if (Number(num.value)==0) {
? ? ? ? ? ? ? alert('除數(shù)不能為0');
? ? ? ? ? ? ? num.value = 0;
? ? ? ? ? ? }else{
? ? ? ? ? ? ? num.value = xin/Number(num.value);
? ? ? ? ? ? }
? ? ? ? ? ? break;
? ? ? ? ? }
? ? ? ? ? break;
? ? ? ? }?
? ? ? }
? ? }
? }
}


//判斷是否是數(shù)字,或者非數(shù)字
function isNumber(n){
? if (!isNaN(n)) {
? ? return true;
? }else{
? ? return false;
? }

}

var ?btn = document.getElementsByTagName('input');
//判斷內(nèi)容是否為空
function isNull(n){
? if (n=='0' || n.length==0) {
? ? return true;
? }else{
? ? return false;
? }
}


//回退鍵定義函數(shù)
function fn(c){
? c=c.substr(0,c.length-1)
? if (isNull(c)) {
? ? c= 0;
? }
? return c;
}


//正負(fù)號定義函數(shù)
function sign(n){
? n=Number(n)*(-1);
? return n;
}


//小數(shù)點(diǎn)
function xiaoshu(n){
? if (n.indexOf('.')==-1) {
? ? num.value=n+'.';
? }else{
? ? num.value=n;
? }
}

計(jì)算器的細(xì)節(jié)收尾

1、鼠標(biāo)指針懸浮再按鈕上希望加上背景
2、鼠標(biāo)單機(jī)d打開百度
3、0和邊框右側(cè)距離有點(diǎn)大。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • js獲取Html元素的實(shí)際寬度高度的方法

    js獲取Html元素的實(shí)際寬度高度的方法

    下面小編就為大家?guī)硪黄猨s獲取Html元素的實(shí)際寬度高度的方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • 詳解js模板引擎art template數(shù)組渲染的方法

    詳解js模板引擎art template數(shù)組渲染的方法

    art-template 是一個簡約、超快的模板引擎。這篇文章主要介紹了詳解js模板引擎art template數(shù)組渲染的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • JavaScript深入介紹WebAPI的用法

    JavaScript深入介紹WebAPI的用法

    JS分成三個大的部分:ECMAScript、DOM API、BOM API,其中:ECMAScript是讓前端開發(fā)建立基本的編程思維。但是要想真正來寫一個更加復(fù)雜的有交互式的頁面,還需要WebAPI的支持,相當(dāng)于把后端編程實(shí)現(xiàn)成前端交互。DOM+BOM就組成了WebAPI
    2022-06-06
  • JavaScript獲取標(biāo)簽的幾種方式小結(jié)

    JavaScript獲取標(biāo)簽的幾種方式小結(jié)

    本文主要介紹了JavaScript獲取標(biāo)簽的幾種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • bootstrap datetimepicker控件位置異常的解決方法

    bootstrap datetimepicker控件位置異常的解決方法

    這篇文章主要為大家詳細(xì)介紹了bootstrap datetimepicker控件位置異常的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 查找頁面中所有類為test的結(jié)點(diǎn)的方法

    查找頁面中所有類為test的結(jié)點(diǎn)的方法

    這篇文章主要介紹了查找頁面中所有類為test結(jié)點(diǎn)的方法,需要的朋友可以參考下
    2014-03-03
  • javascript實(shí)現(xiàn)表單隔行變色

    javascript實(shí)現(xiàn)表單隔行變色

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)表單隔行變色,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • js實(shí)現(xiàn)字符串轉(zhuǎn)日期格式的方法

    js實(shí)現(xiàn)字符串轉(zhuǎn)日期格式的方法

    這篇文章主要介紹了js實(shí)現(xiàn)字符串轉(zhuǎn)日期格式的方法,涉及javascript針對字符串與日期操作的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • mpvue 頁面預(yù)加載新增preLoad生命周期的兩種方式

    mpvue 頁面預(yù)加載新增preLoad生命周期的兩種方式

    這篇文章主要介紹了mpvue 頁面預(yù)加載新增preLoad生命周期的兩種方式,本文重點(diǎn)給大家講解了第一種方式,需要的朋友可以參考下
    2019-10-10
  • js 解析 JSON 數(shù)據(jù)簡單示例

    js 解析 JSON 數(shù)據(jù)簡單示例

    這篇文章主要介紹了js 解析 JSON 數(shù)據(jù)的方法,結(jié)合簡單實(shí)例形式分析了js 解析 JSON 格式數(shù)據(jù)的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-04-04

最新評論