微信小程序开发之不能使用eval函数的问题 推荐 原创 googlingman 2016-12-10 18:35:47 博主文章分类:移动与微信开发 ©著作权 文章标签 eval 小程序 微信 文章分类 移动开发 ©著作权归作者所有:来自51CTO博客作者googlingman的原创作品,请联系作者获取转载授权,否则将追究法律责任 一 eval函数问题Javascript中的eval函数是颇受开发者争议的问题之一,问题主要在于其可能导致的不安全性。有关此方面问题,在此不再赘述,读者可能很容易地浏览到许多介绍性文章。但是,eval函数的优点也是很明显的。例如,使用JS编写一个计算器程序,在遇到"2+1-3*5"这样的字符串时,使用eval就可以很容易地计算出,类似如:var s="2+1-3*5";console.log(eval(s));二 微信小程序练手遇到问题(1)微信小程序环境不支持eval函数在学习微信小程序开发过程中,想使用计算器这样的工具编写练练手——主要是想熟悉一下其布局控制技巧。于是,遇到了上面的问题。很自然,想到使用eval函数,因为编程中正是遇到类似于上面的大量字符串——其中包含一个数字表达式。但是,遇到如下错误:VM773:1 Uncaught TypeError: eval is not a function(…)(2)new Function()方案也不行!初步网络探索后,只好想使用eval()函数的替代方法,类似于如下://计算表达式的值 function eval(fn) { var Fn = Function; //一个变量指向Function,防止有些前端编译工具报错 return new Fn('return ' + fn)(); }结果再次遇到失败提示,类似于如下:can not create Function三 无奈之举在搜索微信小程序少有的几个论坛并全面网络搜索后,只能借助于最原始的办法实现看似简单的计算器中程序的开发了。归纳来看,方法主要有三种,分别是转换函数、强制类型转换和利用js变量弱类型转换。(1)转换函数js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。一些示例如下:parseInt("1234blue"); //returns 1234parseInt("0xA"); //returns 10parseInt("22.5"); //returns 22parseInt("blue"); //returns NaNparseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:复制代码 代码如下:parseInt("AF", 16); //returns 175parseInt("10", 2); //returns 2parseInt("10", 8); //returns 8parseInt("10", 10); //returns 10如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:代码如下:parseInt("010"); //returns 8parseInt("010", 8); //returns 8parseInt("010", 10); //returns 10parseFloat()方法与parseInt()方法的处理方式相似。使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。下面是使用parseFloat()方法的示例:代码如下:parseFloat("1234blue"); //returns 1234.0parseFloat("0xA"); //returns NaNparseFloat("22.5"); //returns 22.5parseFloat("22.34.5"); //returns 22.34parseFloat("0908"); //returns 908parseFloat("blue"); //returns NaN(2)强制类型转换还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。ECMAScript中可用的3种强制类型转换如下:Boolean(value)——把给定的值转换成Boolean型;Number(value)——把给定的值转换成数字(可以是整数或浮点数);String(value)——把给定的值转换成字符串。用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。当要转换的值是至少有一个字符的字符串、非0数字或对象(下一节将讨论这一点)时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。可以用下面的代码段测试Boolean型的强制类型转换。代码如下:Boolean(""); //false – empty stringBoolean("hi"); //true – non-empty stringBoolean(100); //true – non-zero numberBoolean(null); //false - nullBoolean(0); //false - zeroBoolean(new Object()); //true – objectNumber()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。示例如下:代码如下:用 法 结 果Number(false) 0Number(true) 1Number(undefined) NaNNumber(null) 0Number( "5.5 ") 5.5Number( "56 ") 56Number( "5.6.7 ") NaNNumber(new Object()) NaNNumber(100) 100(3)利用js变量弱类型转换举个小例子,一看,就会明白了。代码如下: var str= '012.345 '; var x = str-0; x = x*1;上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换。属于最简单的方法了。小结本文描述的也算是个人开发微信小程序过程中遇到的一个“坑”吧。毕竟小程序的设计目的之一是要访问本机功能的,所以避开eval这样的复杂函数也是可以理解的。目前,我还没有在网络上找到可以使用后面介绍的原始方法的能够实现计算字符串中数字表达式的通用的工具函数。有兴趣的朋友可以试一下。 赞 收藏 评论 分享 举报 上一篇:微信小程序调试之【不在以下合法域名列表中】 下一篇:微信小程序开发需要了解的三个内核技术 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 微信小程序游戏开发流程 近年来,小游戏在游戏市场越发火爆。所谓小游戏,即是指玩家不需要下载安装,只需要几秒钟的加载时间即可玩的游戏。 小游戏没有传统游戏动辄数百万元成本、数十人制作团队等高门槛,这无疑让众多中小研发商看到获利的可能。小游戏低门槛、转化链路短的特征,让众多中小团队能从中寻找到生存空间。而碎片化、便捷休闲的玩法也能吸引到轻度游 小游戏 游戏开发 开发流程 微信小程序连接websocket 在需要启用的地方调用app.js中的openScoket()函数;停用的地方调用closeSocket()函数// app.jsApp({ onLaunch() { // 如果存在相关信息,连接websocket if ( this.globalData.socketStatus === 'closed') { this.openS sed JSON App 全开源微信商城小程序源码|微信小程序网上商城源码搭建 微信商城小程序源码是指一个基于微信小程序已经开发完成的商城小程序的源代码,它包含了商城小程序的前端界面设计、后端功能实现、数据交互等代码。商城小程序源码可以用来快速搭建一个商城小程序,省去了从头开始开发的时间和精力,可以节省开发成本和提高开发效率。通过使用商城小程序源码,你可以根据自己的需求进行定制和修改,包括添加自己的产品、品牌、促销活动等,从而快速搭建一个属于自己的商城小程序。 应用程序 微信商城 搜索 微信小程序中能不能使用jQuery # 微信小程序中能不能使用jQuery在开发微信小程序的过程中,我们通常会使用一些Javascript库来简化开发,其中jQuery是一个非常流行的Javascript库。但是,微信小程序中能不能使用jQuery呢?让我们来一探究竟。## 什么是jQueryjQuery是一个快速、简洁的Javascript库,它简化了HTML文档的操作、事件处理、动画效果以及Ajax交互。由于jQue 微信小程序 jQuery 程序开发 微信小程序能使用axios吗 # 微信小程序能使用axios吗?微信小程序是一种可以在微信中运行的小型应用程序。它具有轻量级、便捷、快速开发等优点,越来越受到开发者的欢迎。在小程序开发中,我们经常需要和后端服务器进行数据交互,而axios是一个非常流行的用于发送HTTP请求的Javascript库。那么,微信小程序能使用axios吗?## axios简介axios是一个基于Promise的HTTP客户端,可以在浏览 ios 微信小程序 HTTP 微信小程序之云函数的使用 在之前的几篇文章里面介绍了下云开发中的云数据库、云存储,接下来的这篇文章主要介绍下云函数,介绍这个云函数的主要用途是因 ide 上传 node.js 微信小程序--云开发之云函数封装使用 前言微信小程序的云开发对数据记录有一定的限制。 比如,自己创建的一条记录,只可以本人更新,别人却无法进行操作(关键是操作了还不报错???) 当然还是有解决方法的: 把需要进行的数据操作放在云函数中,用户通过调用云函数就可以对任何一条数据操作了(前提是数据允许操作)。 但是微信小程序对云函数有个数限制,好像最多有20个云函数。 开始的时候没有注意到这一点,吃了一点亏,后面海轰发现,将一个项目所需要的 微信小程序 云开发 云函数 数据操作 解决方法 微信小程序开发之云开发 创建云开发小程序项目 开通云开发 开通后界面 选择开发环境 开启使用npm模块 安装wx-server-sdk npm install --save wx-server-sdk@latest 创建云函数 // 云函数入口函数 exports.main = async (event, context) 小程序 开发环境 使用牛刀云开发微信小程序(问题集锦) 本文将记下使用牛刀云开发微信小程序的种种问题及可能的解决方案。 牛刀云 小程序 微信小程序开发之mpVue 1 mpVue是什么1.1 简介美团工程师推出的基于Vue.js封装的用于开发小程序的框架融合了原生小程序和Vue.js的特点可完全组件化开发1.2 特 小程序 mpvue 数据 微信小程序开发之如何哪获取微信小程序的APP ID 微信小程序的开发工具,在新建项目的时候,默认提示填写APP ID,如果不填写AppID 也是可以本地测试和开发的,但是无法通过手机调试,只能在开发工具里查看 如果需要真机调试微信小程序,需要安装微信6.3.30 版本才能使用 微信小程序 微信 开发工具 微信开发者工具不能使用定位功能 # 如何解决微信开发者工具不能使用定位功能的问题作为经验丰富的开发者,我将帮助你解决微信开发者工具不能使用定位功能的问题。下面是解决该问题的步骤:| 步骤 | 操作 || --- | --- || 1 | 在微信开发者工具中打开小程序项目 || 2 | 点击工具栏中的“详情”按钮 || 3 | 在弹出的“项目详情”窗口中,点击左侧菜单栏的“开发者工具设置” || 4 | 在右侧窗 微信开发者工具 开发者 HTTPS vue的微信小程序能使用axios吗 vue 微信小程序 写了vue项目和小程序,发现二者有许多相同之处,在此想总结一下二者的共同点和区别。一、生命周期先贴两张图: vue生命周期小程序生命周期相比之下,小程序的钩子函数要简单得多。 vue的钩子函数在跳转新页面时,钩子函数都会触发,但是小程序的钩子函数,页面不同的跳转方式,触发的钩子并不一样。 onLoad:页面加载 一个页面只会调用一次,可以在 onLoad 中获取打开当前页面所调用的 query vue的微信小程序能使用axios吗 Javascript java 前端 ViewUI 微信小程序云开发 python云函数 微信小程序云函数使用 遇到的问题小程序端仅创建者对数据有写权限,一些操作无法在前端代码直接调用数据库 API,例如创建问卷时会指定问卷的份数,当其他用户填写问卷后,问卷份数应该减一,此时由于填写问卷的用户对问卷数据没有写权限,造成更新数据失败。云数据库的权限结构:如何解决注意到“云控制台和服务端始终有所有数据读写权限”,可以编写实现问卷份数减一的业务逻辑的云函数,上传并部署该云函数;当用户填写问卷完成后,在小程序端调用 微信小程序云开发 python云函数 wx 上传 用户登录 更新数据 微信小程序开发wxjava使用 微信小程序开发csdn 微信小程序开发基础2.1【案例1】比较数字大小2.1.1 案例分析2.1.2 创建项目2.1.3 页面组件2.1.4 页面样式2.1.5 配置文件2.1.6 页面逻辑2.1.7 注册程序2.1.8 实现比较功能2.2【案例2】调查问卷2.2.1 案例分析2.2.2 编写表单页面2.2.3 服务器数据交互2.2.4 表单数据绑定2.3【案例3】计算器2.3.1 案例分析2.3.2 编写计算器页面2 微信小程序开发wxjava使用 微信小程序 小程序 前端 表单 小程序微信开发工具 debug 微信小程序开发问题 微信小程序开发常见问题分析!一:项目结构微信小程序项目结构主要有四个文件类型,如下WXML (WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要是微信自己定义的一套组件。WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式,js 逻辑处理,网络请求json 小程序设置,如页面注 小程序微信开发工具 debug json 微信小程序 分割线 【微信小程序】使用EgretWing开发小程序 因为微信web开发者工具开发起来不方便,所以使用EgretWing来进行代码开发,但是由于Egret调试起来很麻烦,所以使用微信web开发者工具进行调试。 1. 使用 微信开发者工具 创建小程序项目 2. EgretWing:文件 --> 打开文件夹 --> 小程序项目目录 EgretWing的使用 web开发 小程序 微信 其他 微信小程序 typescript Page函数 typescript开发微信小程序 微信小程序的开发目前是很热的一个领域,有很多的开发模式,找到一种属于自己的方法才会使得开发顺心顺利。此架构是使用 Taro + dva + typescript 构建前端开发京东凹凸实验室的React框架Taro很成熟,又是大厂在维护更新迭代,不用担心没人维护的问题,他有自己的UI还有物料社区,比起原生小程序方便很多,支持多端,一处代码,多处运行,微信小程序、H5、百度小程序、支付宝小程序、字节 Javascript ui 前端 ViewUI taro 微信小程序开发如何使用tensorflow 微信小程序开发wxml 文章目录1.轮播图1.1、swiper1.1.1 indicator-dots1.1.2 indicator-color1.1.3 indicator-active-color1.1.4 autoplay1.1.5 interval1.2 swiper-item容器1.2.1 image2.加载图片2.1class3.页面跳转3.1 navigateTo跳转3.1.1 url3.1.2 open 小程序 页面跳转 xml 轮播图 微信开发工具包WxJava之微信小程序开发的入门使用篇 微信开发平台小程序 微信小程序零基础开发流程进入微信公众平台 https://mp.weixin.qq.com/微信小程序的接入流程如下:步骤一:注册 1、点击注册 2、点击小程序 3、填写注册信息(一个邮箱只能注册一种类型的账号,一个邮箱只能注册一个小程序) 4、完成后,系统会给上一步填写的邮箱发送一个激活链接,点击链接激活账号 5、点击激活链接后,继续下一步的注册流程。请选择主体类型,完善主体信息和管理员信息(根 小程序 开发版 微信小程序 微信开发者工具