简单说 eval 函数

写出GD32L233/235在读写flash的区别(用于OTA功能) 在单片机里面表示 大概是 address += sizeof(uint32_t) address += sizeof(uint64_t)1.说到OTA功能,实际上 往flash 指定区域写 数据, 拷贝数据,然后 跳转, 必要时 注意单片机的偏移量。在写本文时,L233支持单字写入,而L235只有双字写入. 一个写入地址+4 一个写入地址+8。这个是 自己写的擦除一页 数据,当然可以参考 提供的demo去实现,看自己需求。接下来是 读取 双字,也就是在L235上的读取。 阅读详情
说明

我觉得eval( )函数是一个比较有趣的函数,虽然我平常基本用不到它。但我们还是来说说吧!

eval( ) 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
就是说,有一段字符串,把它放在eval()中就可以当 JavaScript代码执行了。

解释
var a=1;
var b=2;
eval(a+b); //返回 3

很简单吧,我们继续说,eval( )经常会用到的地方就是解析json 字符串了,比如这样

var jsonStr='{j:1, s:2, o:3, n:4}';
console.log(jsonStr.j);   //undefined
var jsonObj=eval("("+jsonStr+")");//转换为json对象
console.log(jsonObj.j);   //1

这段代码应该是足够清楚了,jsonStr变量原来是字符串,所以没法用 . 和 [ ] 来获取属性,但是我们用了eval( )之后,它变为对象了,所以我们用 . 和 [ ] 来获取属性 就能获取到了。
嗯,但是这不是重点,重点是eval("("+jsonStr+")"); 中为什么要拼接一个(),看代码

var jsonEx=" 'j'+1 ";
var jsonSt='{j:1, s:2, o:3, n:4}';
console.log( eval(jsonEx) );  //返回j1
console.log( eval(jsonSt) );  //报错
console.log( eval("("+jsonSt+")") );   //返回 Object

没有加()会报错,为什么呢?
这是因为json是{ }的方式开始和结束的,它会被当成一个语句块来处理,{ }里面的东西都被执行了,所以为了获得一个对象,必须强制性的将它转换成一种表达式。
加上圆括号的目的也就是让eval( )函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。

我们再来看一段奇怪的代码

var obj={
    //number 属性的值是随机的,只是知道它的范围是 1<= number <=3
    number:Math.floor(Math.random()*3+1)
}

//3段执行不同代码的函数
function fn_1(){
    console.log(1);
};
function fn_2(){
    console.log(5);
};
function fn_3(){
    console.log(15);
};

num=obj.number;
eval('fn_'+num)();

obj对象有一个number属性,它的值是随机的,要根据这个值,去决定执行哪个函数,这里用eval( ) 函数解决了这个问题,当然,这并不是唯一的解决方案。只是告诉大家如果遇到这样问题,可以用eval( )解决。

而eval( )函数还是有点缺点的
1、可读性不好
2、不容易调试
3、性能比较低

总结

相信大家已经明白eval( )函数的用法,它就是能把字符串当JavaScript代码执行的一个函数。

参考文章:
JavaScript立即执行函数的解释分析(2)—函数表达式与函数声明的区别
JavaScript立即执行函数的解释分析(3)—谈谈圆括号()
JavaScript eval() 函数

这里写图片描述

2篇1章1节:数据的基本概念以及 R 中的数据结构、向量与矩阵的创建及运算 本文详细介绍了R语言中常见的数据结构的向量和矩阵。通过掌握这些数据结构的基本概念和操作技巧,可以更高效地处理和分析数据。 阅读详情

相关推荐

OpenClaw与Ollama本地AI部署指南

AI模型本地化部署是当前企业数字化转型的关键技术,通过开源框架Ollama可以在消费级硬件上运行大语言模型。本文以OpenClaw多智能体系统为例,详解从环境配置到模型优化的全流程实践,特别针对国内开发者遇到的网络问题提供了镜像加速等解决方案。这种私有化部署方案尤其适合金融数据分析、企业知识管理等对数据安全要求高的场景,通过模块化设计实现多智能体协作,同时保持对NVIDIA显卡和普通CPU的兼容性。

weixin_34302561的博客 399

can't read property 'status' of undefined at eval 报错

点击页数的时候页面加载不出来,一直转圈,报错can’t read property ‘status’ of undefined at eval 原因是:封装的表格默认是自动加载,不应该在mounted中加手动加载了,所以应该去掉mounted中的手动搜索 正确写法是: ...

weixin_43739375的博客 6196

组态王|通过日历控件选择时间段查询历史报警

哈喽,你好啊,我是雷工!这节记录下查询历史报警信息的功能实现。以下为实现笔记。

做有价值的事,积累有价值的笔记! 3767

关于vue.js前端接收到数据却始终报_this is not defined at eval 的错误

之前做了一个关于作业管理的平台,利用ajax和后台异步通信,利用console.info()方法可以输出接受到的数据,但是一旦在成功的响应方法里面将数据赋值给前端定义的变量。就会转到failResponse的方法里面。代码如图: 数据已经获得成功如下图 但是数据一致不能够复制到前端定义的变量里面。一直报_this is not defined at eval 的错误。 解决办法: ...

yt2350438011的博客 2万+

S-function入门及案例详解(1)——S-function基础介绍及基本案例

本专题将用三篇文章对S-function进行介绍及其案例详解。欢迎关注~ 目录一、S-Function简介二、详解sfuntmpl函数2.1 sfuntmpl函数介绍2.2 mdlInitializeSizes函数2.3 mdlDerivatives函数2.4 mdlUpdate函数2.5 mdlOutputs函数2.6 mdlGetTimeOfNextVarHit函数2.7 mdlTerminate函数三、案例1——对波形的幅值进行放大3.1 案例分析3.2 案例详解3.3 输出波形四、案例2——对波形的

Wendy的博客 7万+

审稿人看了直呼内行:多组学整合分析——科研小白进阶之路

多组学,多平台分析解决方案

pysonger的博客 3944

前端解决 “TypeError: Cannot read properties of undefined (reading ‘xxx‘)的多种情况

例如:TypeError: Cannot read properties of undefined (reading '$el') at eval。

sunwenpinglike的博客 43万+

《通信工程施工与管理》

制作馈线接头必须使用专用的工具,专用工具包括:馈线切割刀、馈线安全刀、小金属丝毛刷、固定尺寸或大号活动扳手、小号扁锉刀、细齿小手锯、接头扩孔器、3M防水胶或防水接头盒;如图所示,详情如表所示。

2302_78710464的博客 1654

fetch SyntaxError: Unexpected end of input at eval (eval at <anonymous> (/dist.js......

使用fetch时,报错 前端使用fetch()时,报错如下: SyntaxError: Unexpected end of input at eval (eval at <anonymous> (http://localhost:8280/dist/dist.js?v=@VERSION@:2695:2), <anonymous>:670:29) 并且打印respo...

qijingpei的博客 5238

全网最全 | Linux(Ubuntn)系统安装 | 硬盘挂载 | 用户创建 | 生信分析配置

昨天(2024年7月23日)我们分享了学生及科研人员电脑配置推荐 | 笔记本+外置显卡配置,性能足够支持完成你博士论文文本内容,那么今天我们就分享一文解决 | Linux(Ubuntn)系统安装 | 硬盘挂载 | 用户创建 | 生信分析配置的教程,我们使用一文来解决大家在做生信时遇到安装系统、配置环境的问题。在此文中,我们尽快可能给出一套全网最全的教程。目标是解决新手小白同学查资源的困惑和难题。但是,每个童鞋遇到的问题不一样,此教程也不可能把你遇到的每个问题都归纳在其中。我们也希望,

BioinfoDu 2261

人工智能技术基础系列之:迁移学习

作者:禅与计算机程序设计艺术 1.背景介绍 随着深度学习和神经网络的快速发展,越来越多的应用场景需要处理大量的数据和复杂的任务。然而,由于计算资源、存储空间等条件的限制,传统的人工智能方法往往不能满足实际需求。因此,为了提高效率和降低成本,研究人员提出了迁移学习的概念。本篇文章将详细介绍迁移学习的基

AI天才研究院 700

Vue开发实例(06)之Vue3注册Element-ui报错解决

Uncaught TypeError: Cannot read properties of undefined (reading 'prototype') at eval (webpack-internal:///./node_modules/element-ui/lib/utils/types.js:39) at Object../node_modules/element-ui/lib/utils/types.js (chunk-vendors.js:2923) at __webp

编程界明世隐的博客 1万+

【Unity引擎技术整合】 Unity学习路线 | 知识汇总 | 持续更新 | 保持乐趣 | 共同成长

本文对Unity引擎的知识进行了一个整理总结,基本包含了Unity中大部分的知识介绍。 网上也有很多Unity相关的学习资料,但大多数都不成体系,学起来的时候难免会东奔西走的摸不着头脑。 本文整理的多数文章都是有对应的系列性文章专栏,可以更方便的进行系统学习相关知识体系。

努力前行,总会成为自己心中的那道光 15万+

python的eval函数

1.eval函数的语法及用法 (1)语法:eval(expression) 参数说明 expression:字符串表达式,可为算法,也可为input函数等。 说明:表达式必需是字符串,否则会报错,比如直接输入数值会报错为:“TypeError: eval() arg 1 must be a string, bytes or code object”,如下图所示。 (2)作用:接收运行一个字符串表达式,返回表达式的结果值。 2.实例 (1)简单的计算用法 例1:求得2+3得值。 e

weixin_50853979的博客 8万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Python系列】eval 函数

eval 函数

青年有志 3万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

eval()函数的用法

1. eval()函数函数基本原理 eval(s)函数将去掉字符串s最外侧的引号,并按照Python语句方式执行去掉引号后的字符内容。 使用方式如下: <变量>=eval(<字符串>) a = eval("1.2") print(a) 输出结果: 1.2 犹如: pybook = 123 a = eval("pybook") print(a) 值得注意的是: a = eval("pybook") print(a) 将报错: Traceback (most recen

weixin_46667735的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

makefile eval函数详解

同时注意到, var, arg, pointed_value 都是空值,因为我实际上只是通过 $(info ) 函数将替换了参数后的 foo 函数体,或者说 $(call foo, pointer) 的返回值打印到标准输出而已($1 就是 pointer, 调用函数,就直接替换下参数而已),所以,这几行代码并没有真正执行。其实这句话的意思,想想 C 程序的执行流程就知道了,一个 main 函数,里面调几个函数,这几个函数执行完了,程序就执行完了。返回值:函数“eval”的返回值时空,也可以说没有返回值。

wwwtovvv的专栏 1807

matlab eval 函数的使用

很多时候在用matlab进行编程的时候,我们需要给多个变量命名和赋值,如果用手一个一个的去敲,多少会感到无聊且枯燥,而且还显得不专业。利用for循环和eval函数即可实现多变量的命名和赋值。

D_O2021的博客 2万+

python eval函数简单使用

eval是python的一个内置函数,其作用是返回传入字符串的表达式的结果 语法:eval(expression[, globals[, locals]]) expression: 这个参数是一个表达式 globals: 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象 locals: 变量作用域,局部命名空间,如果被提供,可以是任何映射对象 1. 只提供第一个参数,eval的作用就是将expression的引号去掉,保留引号中字符的原有属性 m = "123" print(ev.

haoran的博客 1986

Python eval函数

eval()eval()函数是Python中一个强大而灵活的工具,用于动态执行字符串表达式或代码。通过本文,已经了解了eval()函数的用法、语法、示例代码以及在实际编程中的应用场景和安全性注意事项。虽然eval()函数具有很大的潜在价值,但在使用时需要格外小心,以避免安全漏洞和代码注入攻击。希望本文能够帮助大家更好地理解和利用eval()函数在Python中的应用。

日常分享数据分析开发、编程语言内容 2371

eval函数详解,从什么是eval()到使用的黄金准则

eval()特性描述功能将字符串作为 Python 表达式来求值并返回结果。语法核心风险代码注入。绝不能用于处理不受信任的输入。安全用法通过提供受限的globals和locals字典来创建一个沙箱环境。安全替代方案(用于解析字面量)、类型转换 (int()float())、专用解析库 (NumExpr适用场景在完全受控和可信的环境下,用于动态表达式求值或实现简单的 DSL。如果你不确定是否应该使用eval(),那就不要用。优先寻找更安全的替代方案。

2301_79168784的博客 3931

eval函数

eval函数解析 定义及用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。 语法 eval(string) 参数 string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。 返回值 通过计算 string 得到的值(如果有的话)。 说明 该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将...

one-way or another 2680

初学Python之eval函数的嵌套eval中的eval

今天老师布置了一个作业,很简单的几行代码。但是也算让我彻底知道了Python中的eval这个函数了,因为之前学过一点Python,以为自己已经知道了eval函数的用法(还以为这是用来自动识别输入类型,可以用来输入字典) 结果啪啪打脸了。呜呜呜。。。 题目如下: 在Python窗口界面的shell window执行下列代码,观察输出结果,掌握**eval()**函数的使用方法。没办法老师要求用she...

面向生活编程 1487

eval函数python_Python eval()函数

eval函数pythonPython eval() function is used to parse an expression string as python expression and then execute it. Python eval()函数用于将表达式字符串解析为python表达式,然后执行它。 Python eval()函数 (Python eval() function...

从零开始的教程世界 3305

python小技巧eval函数的简单使用

python中的eval() 函数异常强大,使用好eval()函数可以取得事半功倍的效果。简单来说 ,eval()函数用来执行一个字符串表达式,并返回表达式的值。 1、简单使用实例: x = 1 print(eval('x+1')) 程序运行结果输出为: 2 2、函数调用使用实例: 首先定义一个functions函数其内容如下: def funcA(): print('funcA') def funcB(): print('funcB') def funcC():

Unremitting__的博客 647

Python中eval函数的用法

文章目录一、eval函数的作用二、eval函数的使用例子栗子1栗子2栗子3栗子4 一、eval函数的作用 它是评估函数 -eval() 去掉参数最外侧引号并执行余下语句的函数 eval(<字符串或字符串变量>) 二、eval函数的使用例子 栗子1 eval("1") 输出: 栗子2 eval("1+2") 输出: 栗子3 eval('"1+2"') 输出:这里我有一个疑惑 用pycharm 运行出来是这样的: 用IDLE命令行运行出来是这样的 栗子4 eval('print("Hello

莯顼姁的博客 3749
上一篇: JavaScript立即执行函数的解释分析(4)—总结篇
下一篇: 简单说 CSS中的mask—好好利用mask-image
FEWY
FEWY 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄10年 504粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值