实现一个计算器的小程序

先看实现后的效果图:

计算机主页面,有基本的加减乘除功能,还有退格和清空数据

这里增加了一个历史记录页面,通过将数据异步保存到缓存里后需要查看时直接提取

此小程序主要实现的点击代码如下:

clickBtn: function (event) {
 var id = event.target.id;
 if(id == this.data.id1){ //退格
 var data = this.data.screenData;
 if(data == 0){
 return;
 }
 data = data.substring(0,data.length-1);
 if(data == ''|| data =='-'){
 data=0;
 }
 this.setData({screenData: data});
 }else if(id == this.data.id2){ //清空数据
 this.setData({screenData: '0'});
 }else if(id == this.data.id3){ //正负号
 var data = this.data.screenData;
 if(data == 0){
 return
 }
 var firstword = data.substring(0,1);
 if(firstword == '-'){
 data = data.substring(1,data.length);
 }else
 data = '-'+ data;
 this.setData({screenData: data});
 }else if(id == this.data.id20){ //运行结果
 var data = this.data.screenData;
 if(data == 0){
 return;
 }
 var result = eval(data);
 this.data.logs.push(data+'='+result);
 try {
 wx.setStorageSync('res', this.data.logs);
 } catch (e) {
 }
 this.setData({screenData: result});
 }
 else{
 
 if(id == this.data.id4||id == this.data.id8|| id == this.data.id12|| id == this.data.id16){
 if(this.data.lastIsOperator == true|| this.data.screenData == 0){
 return;
 }
 }
 var data;
 if (this.data.screenData == 0) {
 data = event.target.id;
 } else{
 data = this.data.screenData + event.target.id;
 }
 this.setData({ screenData: data });
 if (id == this.data.id4 || id == this.data.id8 || id == this.data.id12 || id == this.data.id16) {
 this.setData({lastIsOperator: true});
 }else
 this.setData({lastIsOperator: false});
 }

}

当前这个计算器还有些许bug,使用稍微有些粗糙,后续将继续完善它,希望大家随时来拍砖。