微信小程序开发学习——顺序、选择、循环、数学函数

news2024/9/29 15:35:11

        1.条件语句

只需在js中写JavaScript的条件语句就行

math对象:

代码如下:

<!--pages/tiaojian/tiaojian.wxml-->
<view class="box">
 <view class="title">输入x,条件输出y</view>
 <view>
  <input placeholder='请输入x' type="digit" bindblur="calc"></input>
 </view>
 <view>输出值y=:{{y}}</view>
</view>
// pages/tiaojian/tiaojian.js
Page({
  calc: function(e){
    var x,y;
    x = e.detail.value;
    if(x<0){
      y=Math.abs(x);
    }
    else if(x>=0&&x<10){
      y=Math.exp(x) * Math.sin(x);
    }
    else if(x>=10&&x<20){
      y=Math.pow(x,3);
    }
    else{
      y=(3 + 2 * x) * Math.log(x);
    }
    
    this.setData({
     y: y
   })
  }
})

2.button组件和hidden参数

button组件:

view中可以加入hidden参数,进行暂时隐藏。具体用法如下完整代码显示:

<!--pages/chengji/chengji.wxml-->
<view class="box">
  <view class="title">成绩计算器</view>
  <view>
    <input placeholder='请输入姓名' placeholder-class="placehoder" type="text" bindblur="nameInput"></input>
  </view>
  <view>
    <input placeholder='请输入语文成绩' placeholder-class="placehoder" type="number" bindblur="yuwenInput"></input>
  </view>
  <view>
    <input placeholder='请输入数学成绩' placeholder-class="placehoder" type="number" bindblur="shuxueInput"></input>
  </view>
  <button bindtap="mysubmit" class="button">提交</button>
  <view hidden="{{flag}}">
    <view class="content-item">姓名:{{name}}</view>
    <view class="content-item">语文成绩:{{yuwengrade}}</view>
    <view class="content-item">数学成绩:{{shuxuegrade}}</view>
    <view class="content-item">平均成绩:{{average}}</view>
  </view>
</view>
// pages/chengji/chengji.js
Page({
  data:{
    flag : true,
    name : "",
    yuwengrade : "",
    shuxuegrade : "",
    average : ""
  },
  nameInput:function(e){
    this.setData({
      name:e.detail.value
    })
  },
  yuwenInput:function(e){
    this.setData({
      yuwengrade:e.detail.value
    })
  },
  shuxueInput:function(e){
    this.setData({
      shuxuegrade:e.detail.value
    })
  },
  mysubmit:function(){
    if(this.data.name=""||this.data.shuxuegrade==""||this.data.yuwengrade=="")
      return;
    else{
      this.setData({
        average:(this.data.shuxuegrade*1+this.data.yuwengrade*1)/2,
        flag : false
      })
    }
  }
})

并且需要注意一点:定义的参数,默认是字符串类型的,如果要变成数型运算,需要*1进行转换。

3.循环样例

 

只需在js中写JavaScript的循环语句就行。

支持的循环类型:

for/in样例:

JavaScript全局对象:

全局变量即定义在所有函数之外的变量,能被该文件的所有函数使用。

完整代码如下:

<!--pages/xunhuan/xunhuan.wxml-->
<view class="box">
  <view class="title">循环计算器</view>
  <view>
    <input placeholder='请输入起始x' placeholder-class="placehoder" type="number" bindblur="xInput"></input>
  </view>
  <view>
    <input placeholder='请输入截至y' placeholder-class="placehoder" type="number" bindblur="yInput"></input>
  </view>
  <button type="primary" bindtap="calc" class="button">求和</button>
  <view hidden="{{flag}}">
    <view class="content-item">结果:{{sum}}</view>
  </view>
</view>
// pages/xunhuan/xunhuan.js
var start,end,sum;//定义了全局变量
Page({
  xInput:function(e){
    start = parseInt(e.detail.value);
  },
  yInput:function(e){
    end = parseInt(e.detail.value);
  },
  calc:function(){
    sum = 0;
    for(var i=start;i<=end;i++){
      sum = sum+i*1;  
    }
    this.setData({
      sum:sum
    })
  }
})

4.时钟、回调函数

实现一个一分钟倒计时计时器。开始计时按钮开始计时,重置按钮恢复60s,停止计时按钮停止计时。

四个与时钟相关的函数:

setTimeout(function callback,number delay,any rest)

callback函数为delay时间结束后执行的一个函数,any rest重置方法。

clearTimeout(number timeoutID)

取消由setTimeout设置的计时器,参数timeoutID为要取消的计时器的ID

setInterval(function callback,number delay,any rest)

与setTimeout的区别为,setInterval每delay个时间执行一次callback。

clearInterval(number interval ID)

取消setInterval设置的计时器。

代码如下:

<!--pages/jishiqi/jishiqi.wxml-->
<view class="box" hidden="{{hidden}}">
  <view class="title">计时器</view>
  <view class="time">{{num}}</view>
  <view class="btnLayout">
    <button bindtap="start">开始计时</button>
    <button bindtap="reset">重置</button>
    <button bindtap="stop">停止计时</button>
  </view>
</view>
// pages/jishiqi/jishiqi.js
var num = 60;
var timerID;
Page({
  data:{
    hidden:true,
    num:num
  },
  onLoad:function(options){
    var that = this;
    that.show()
  },

  show:function(){
    var that = this;
    that.setData({
      hidden :false
    })
  },

  start:function(){
    var that = this;
    timerID = setInterval(()=>{that.timer()},1000)
  },

  stop:function(){
    clearInterval(timerID)
  },

  reset:function(){
    var that = this;
    num = 60;
    that.setData({
      num:num
    })
  },

  timer:function(){
    var that = this;
    if(num>0){
      that.setData({
        num:--num
      })
    }
    else{
      that.setData({
        num:0
      })
    }
  }
})

这里我们都用了局部变量that = 初始的this,因为在运行过程中this指向可能改变,因此用that可以避免因为指向改变导致的错误。

5.使用数组和随机函数

设计一个小程序用于显示三色旗,当点击按钮时更换三色旗颜色。

直接上代码就能理解:

<!--pages/suijiflag/suijiflag.wxml-->
<view class="box">
<view class = "title">随机三色旗</view>
<view class = "flex-warp">
  <view class="item" style="background-color:{{color1}}"></view>
  <view class="item" style="background-color:{{color2}}"></view>
  <view class="item" style="background-color:{{color3}}"></view>
</view>
  <button type="primary" class="btn" bindtap="changecolor">改变颜色</button>
</view>
// pages/suijiflag/suijiflag.js
Page({
  createColor:function(){
    var color = [];//定义数组
    var letters = "0123456789ABCDEF";
    for(var i=0;i<3;i++){
      var c = "#";
      for(var j=0;j<6;j++){
        c += letters[Math.floor(Math.random()*16)];
      }
      color.push(c);
    }
    this.setData({
      color1:color[0],
      color2:color[1],
      color3:color[2]
    })
  },
  onLoad:function(options){
    this.createColor();
  },

  changecolor:function(){
    this.createColor();
  }
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1235360.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MT8735/MTK8735安卓核心板规格参数介绍

MT8735核心板是一款高性能的64位Cortex-A53四核处理器&#xff0c;设计用于在4G智能设备上运行安卓操作系统。这款多功能核心板支持LTE-FDD/LTE-TDD/WCDMA/TD-SCDMA/EVDO/CDMA/GSM等多种网络标准&#xff0c;同时还具备WiFi 802.11a/b/g/n和BT4.0LE等无线通信功能。此外&#x…

Windows + Syslog-ng 发送eventlog 到Splunk indexer

1: 背景: 装了window Splunk universal forwarder 的 window server 要把event log 送到linux 的splunk indexer 上,由于网络的原因,不能直接发送数据到splunk indexer的话,要利用跳板机来实现: 2:架构: 3: 先说明每个类型server 上的安装情况: Window server: 安装S…

前端css粘性布局,顶部吸附效果(position: sticky)

sticky属性设置 /* 设置粘性布局 */ position: sticky; /* 拖动滚动条&#xff0c;当前元素超出文档0的位置时&#xff0c;触发定位效果&#xff08;同级元素位置不会受影响&#xff09; */ top: 0;页面初始效果 设置前&#xff08;滚动页面时&#xff0c;标签栏随页面滚动&a…

人工智能时代:深入了解与学以致用的智能科技

目录 前言人工智能的领域1. 医疗健康2. 交通与智能驾驶3. 教育领域4. 金融与人工智能5. 制造业与自动化 人工智能的应用1. 智能手机与语音助手2. 智能家居系统3. 自动驾驶汽车4. 医疗诊断与治疗5. 金融风控与预测分析 对人工智能的看法1. 科技的利弊2. 伦理和隐私问题3. 人工智…

树与二叉树堆:二叉树

二叉树的概念&#xff1a; 二叉树是树的一种&#xff0c;二叉树是一个节点&#xff0c;最多只有两个子节点&#xff0c;二叉树是一个特殊的树二叉树的度最大为2 从上图可得一棵二叉树是结点的一个有限集合&#xff0c;该集合: 或者为空由一个根结点加上两棵别称为左子树和右子…

【软考】文件的组织结构

目录 一、说明二、逻辑结构2.1 说明2.2 记录式文件2.2.1 说明2.2.2 顺序文件2.2.3 索引文件2.2.4 索引文件 2.3 流式文件 三、物理结构3.1 说明3.2 链接方式之隐式链接3.3 链接方式之显式链接 一、说明 1.组织结构是文件的组织形式。 2.逻辑结构为用户可见的的文件结构。 3.物理…

8Base集团通过SmokeLoader部署新的Phobos勒索软件变种

最近&#xff0c;8Base集团的威胁行为者通过Phobos勒索软件的变种展开了一系列金融动机的攻击。这一发现来自于思科Talos的研究结果&#xff0c;他们记录了网络犯罪分子活动的增加。 安全研究员Guilherme Venere在周五发表的详尽的两部分分析中表示&#xff1a;“该组织的大多…

OpenGL_Learn14(光照贴图)

1. 漫反射贴图 在光照场景中&#xff0c;它通常叫做一个漫反射贴图(Diffuse Map)&#xff08;3D艺术家通常都这么叫它&#xff09;&#xff0c;它是一个表现了物体所有的漫反射颜色的纹理图像。 我们会将纹理储存为Material结构体中的一个sampler2D 。我们将之前定义的vec3漫反…

元素定位与选择器

元素定位与选择器 做元素定位时&#xff0c;你是否曾遇到过以下难题 元素 ID 或 class 是动态生成的你使用了 CSS选择器去定位&#xff0c;但开发把元素CSS样式改掉了 这种情况下通常会测试失败 Cypress 如何解决上述难题 提供了 data-* 属性&#xff0c;包含了下面三个定…

阿里8年经验之谈 —— 分享一次接口性能摸底测试过程!

接口性能测试是用于验证应用程序中的接口是否可以满足系统的性能要求的一种测试方法。确定应用程序在各种负载条件下的性能指标&#xff0c;例如响应时间、吞吐量、并发性能等&#xff0c;以便提高系统的性能和可靠性。本文主要讲述接口性能测试从前期准备、方案设计到环境搭建…

数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大关键点分析

数字化时代银行网点厅堂营销需要抓住以下5大关键点&#xff1a; 1、精准识别客户&#xff1a;在数字化时代&#xff0c;银行网点厅堂营销的关键在于精准识别客户。通过利用大数据和人工智能技术&#xff0c;银行可以分析客户的行为和需求&#xff0c;从而更好地了解客户&#…

Win10 电源选项那选择“关闭显示器“为1分钟,1分钟后就锁屏了?怎么才能关闭显示器后不锁屏

环境&#xff1a; Win10专业版 问题描述&#xff1a; Win10 电源选项那选择"关闭显示器"为1分钟&#xff0c;1分钟后就锁屏了&#xff1f;怎么才能关闭显示器后不锁屏 解决方案&#xff1a; 方法一 更改注册表可以实现关闭显示器而不锁屏的效果。请按照以下步骤…

雷电模拟器报错:g_bGuestPoweroff.fastpipeapi. cpp_1153_1161

文章目录 一、报错详情&#xff1a;二、解决&#xff1a;【1】设置Windows功能【2】设置cmd&#xff08;管理员身份&#xff09;【3】重启电脑 三、windows10其中1809版本出现1153、1161&#xff0c;需要关闭内核隔离 一、报错详情&#xff1a; 二、解决&#xff1a; 【1】设置…

go语言学习之旅之Go 语言指针

学无止境&#xff0c;今天继续学习go语言的基础内容 Go语言支持指针&#xff0c;允许你在程序中直接操作变量的内存地址。指针存储了变量的内存地址&#xff0c;通过指针&#xff0c;你可以直接访问或修改该地址上的值。 学习过c语言的一定知道指针 定义指针 在Go语言中&…

卷积神经网络(ResNet-50)鸟类识别

文章目录 卷积神经网络&#xff08;CNN&#xff09;mnist手写数字分类识别的实现卷积神经网络&#xff08;CNN&#xff09;多种图片分类的实现卷积神经网络&#xff08;CNN&#xff09;衣服图像分类的实现卷积神经网络&#xff08;CNN&#xff09;鲜花的识别卷积神经网络&#…

芯片IO口不加电阻会怎样?

芯片IO口不加电阻会怎样&#xff1f; 可能会导致以下几个后果&#xff1a; 1.高电流问题&#xff0c;IO口没有电阻限流&#xff0c;当与外部设备直接连接时&#xff0c;就可能会导致过大的电流流过IO口&#xff0c;这就可能损坏IO口&#xff0c;引起短路或烧坏其它电路组件。像…

设计模式-访问者模式-笔记

Visitor模式 动机&#xff08;Morivation&#xff09; 在软件构建过程中&#xff0c;由于需求的变化&#xff0c;某些类层次结构中常常需要增加新的行为&#xff08;方法&#xff09;&#xff0c;如果直接在基类中做这样的更改&#xff0c;将会给子类带来很繁重的变更负担&am…

4. Pandas行列操作

4.1 新增列 4.1.1 assign Pandas中的assign&#xff08;&#xff09;函数不仅可以实现不改变原数据情况下新增列&#xff0c;而且可以同时新增多列&#xff0c;还可以配合链式操作使用一行代码完成多个新增列创建&#xff0c;使得代码非常整洁。 &#xff08;1&#xff09;函…

【GitHub】保姆级使用教程

一、如何流畅访问GitHub 1、网易uu加速器 输入网址&#xff0c;无脑下载网易加速器&#xff1b;https://uu.163.com/ 下载安装完毕后&#xff0c;创建账号进行登录 登录后&#xff0c;在右上角搜索框中搜索“学术资源”&#xff0c;并点击&#xff1b; 稍等一会儿就会跳…

如何使用SD-WAN提升物流供应链网络效率

案例背景 本次分享的物流供应链企业是一家国际性的大型企业&#xff0c;专注于提供全球范围内的物流和供应链解决方案。案例用户在不同国家和地区均设有多个分支机构和办公地点&#xff0c;以支持客户需求和业务运营。 在过去&#xff0c;该企业用户使用传统的MPLS网络来连接各…