JavaScript 复杂的<三元运算符和比较操作>的组合--案例(一)
在逆向的时候,碰上有些复杂的js代码,逻辑弄得人有点混;
因此本帖用来记录一些棘手的代码,方便自己记忆,也让大家拓展认识~
----前言
内容:
function(e, t, n) {try {1 == (e = "{" == e[0] ? JSON.parse(e) : JSON.parse(webInstace.shell(e))).Status || 200 == e.Code ? r(e.Data) : 200 == e.code ? r(e.data) : a(e.Msg)} catch (e) {a(e)}
解析:
总:
这段 JavaScript 代码是一个复杂的三元运算符和比较操作的组合。这段代码主要用于确定如何处理结果对象 e,看是直接作为 JSON 解析,是通过某个 webInstance.shell 函数调用得到解析,以及如何处理成功与否后的调用。
步骤:
1.首先,判断变量 e 的第一个字符是否是 {:
-
如果 e[0] === "{" 条件为 true,则假定 e 是一个 JSON 字符串,所以尝试 JSON.parse(e) 来解析它。
-
如果不满足 e[0] === "{"(即 e 的首字母不是 {),则调用 webInstance.shell(e) 方法,随后对返回的结果尝试 JSON.parse。
计算结束后,无论 e 由哪种方式解析,结果会重新赋值给变量 e。
2.接下来的比较操作是在尝试归类 e 是否标识了成功的状态。为此进行了多个等价性比较:
- 首先比较 e.Status 是否等于 1。如果等于,这说明操作是成功的,然后调用函数 r(e.Data) 并传入 e.Data。
- 如果第一个条件不成立(e.Status 不等于 1),则检查 e.Code 是否等于 200。如果等于 200,也被认为是成功的,同样调用函数 r(e.Data)。
- 如果 e.Code 不等于 200,则还会检查 e.code (注意这里的 code 是小写)是否等于 200。如此相等,则调用函数 r(e.data) (这里 e.data 是小写)。
3.如果所有上述都为 false,即 e 的 Status 和 Code(或 code,注意大小写)都不符合成功的条件,则调用函数 a(e.Msg) 并传入 e.Msg,它通常代表某种错误或状态消息。
综上所述,这段代码的目的是处理一个动态响应体 e。它首先尝试解析 e, 然后根据 Status 或 Code (或 code) 字段的值来判断操作是否成功,并根据这些判断结果调用相应的函数
相关文章:
JavaScript 复杂的<三元运算符和比较操作>的组合--案例(一)
在逆向的时候,碰上有些复杂的js代码,逻辑弄得人有点混; 因此本帖用来记录一些棘手的代码,方便自己记忆,也让大家拓展认识~ ----前言 内容: function(e, t, n) {try {1 (e "{" e[0] ? JSON.parse(e) : JSON.parse(webInstace.shell(e))).Status || 200 e.Code…...
uniapp搭建内网映射测试https域名
搭建Https域名服务器 使用github的frp搭建,使用宝塔申请免费https证书,需要先关闭宝塔nginx的反向代理,申请完域名后再开启反向代理即可。 教程 新版frp搭建教程 启动命令 服务器端 sudo systemctl start frps本地 cd D:\软件安装包\f…...
国防科技大博士招生入学考试【50+论文主观题】
目录 回答模板大意创新和学术价值启发 论文分类(根据问题/场景分类)数学问题Efficient Multiset Synchronization(高效的多集同步【简单集合/可逆计数Bloom过滤器】)大意创新和学术价值启发 An empirical study of Bayesian netwo…...
CUDA简介——编程模式
1. 引言 前序博客: CUDA简介——基本概念 CPU是用于控制的。即,host控制整个程序流程: 1)程序以Host代码main函数开始,然后顺序执行。 Host代码是顺序执行的,并执行在CPU之上。Host代码会负责Launch ke…...
Linux 软件安装
目录 一、Linux 1、Linux异常解决 1、JDK安装 1、Linux卸载JDK 2、Linux安装JDK 2、Redis安装 一、Linux 1、Linux异常解决 1、Another app is currently holding the yum lock; waiting for it to exit... 解决办法: rm -f /var/run/yum.pid1、杀死这个应用程序 ps a…...
flask之邮件发送
一、安装Flask-Mail扩展 pip install Flask-Mail二、配置Flask-Mail 格式:app.config[参数]值 三、实现方法 3.1、Mail类 常用类方法 3.2、Message类,它封装了一封电子邮件。构造函数参数如下: flask-mail.Message(subject, recipient…...
【Filament】Filament环境搭建
1 前言 Filament 是一个实时物理渲染引擎,用于 Android、iOS、Linux、macOS、Windows 和 WebGL 平台。该引擎旨在提供高效、实时的图形渲染,并被设计为在 Android 平台上尽可能小而尽可能高效。Filament 支持基于物理的渲染(PBR)&…...
外包干了2个月,技术倒退2年。。。。。
先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...
使用 python ffmpeg 批量检查 音频文件 是否损坏或不完整
自用工具,检查下载的音乐是否有损坏 或 下载不完整 使用方法,把 in_dir r’D:\158首无损珍藏版’ 改成你自己的音乐文件夹路径 如果发现文件有损坏,则会在命令行打印错误文件的路径 注意,要求 ffmpeg 命令可以直接在命令行调用…...
Django:通过user-agent判断请求是来自移动端还是PC端(电脑端)
第一种思路: 根据博文 Djano的request.META是什么?的研究成果,先判断有无键HTTP_SEC_CH_UA_MOBILE,如果没有,再去按博文 网站如何判断请求是来自手机-移动端还是PC-电脑端?如何让网站能适应不同的客户端&am…...
Linux中ssh远程登录系统和远程拷贝
本章主要介绍ssh远程登录系统和远程拷贝的方法 ssh的基本用法打开远程图形化界面ssh无密码登录和安全操作Windows远程登录远程拷贝 很多时候服务器并没有显示器,我们也不可能每次都通过控制台去管理服务器,这时就需 要远程登录。远程登录到服务器可以通…...
git常用命令小记
(文章正在持续更新中) git init - 在当前目录下初始化一个新的 Git 仓库。 git clone [url] - 克隆远程仓库到本地。 git add [file] - 将文件添加到暂存区。 git commit -m "commit message" - 将添加到暂存区的文件提交到本地仓库。 git pus…...
深入Android S (12.0) 探索Framework之输入系统IMS的构成与启动
文章目录 前言一、输入系统的基本组成部分二、输入系统相关源码分析1、IMS 构建1.1、SystemServer # startOtherServices()1.2、InputManagerService1.3、NativeInputManager # nativeInit()1.4、NativeInputManager1.5、InputManager1.6、InputDispatcher1.7、InputReader1.8、…...
SoC with CPLD and MCU ?
AG32 MCU 产品支持多种接口外设,具备与业界主流产品的兼容性,并内置额外的2K FPGA 可编程逻辑。 产品支持 LQFP-48,LQFP-64,LQFP-100 ,QFN-32等不同封装。其所有可用 IO 都可以任意地进行映射和互换,以灵活…...
基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(二)——数据清洗、转换
2 数据清洗、转换 此实验使用S3作为数据源 ETL: E extract 输入 T transform 转换 L load 输出 大纲 2 数据清洗、转换2.1 架构图2.2 数据清洗2.3 编辑脚本2.3.1 连接数据源(s3)2.3.2. 数据结构转换2.3.2 数据结构拆分…...
vuepress-----6、时间更新
# 6、时间更新 基于Git提交时间修改文字时间格式 moment # 最后更新时间 # 时间格式修改 下载库文件 yarn add momentconst moment require(moment); moment.locale(zh-cn)module.exports {themeConfig: {lastUpdated: 更新时间,},plugins: [[vuepress/last-updated,{trans…...
C++ ini配置文件的简单读取使用
ini文件就是简单的section 下面有对应的键值对 std::map<std::string, std::map<std::string, std::string>>MyIni::readIniFile() {std::ifstream file(filename);if (!file.is_open()) {std::cerr << "Error: Unable to open file " << …...
【稳定检索|投稿优惠】2024年经济管理与安全科学国际学术会议(EMSSIC 2024)
2024年经济管理与安全科学国际学术会议(EMSSIC 2024) 2024 International Conference on Economic Management and Security Sciences(EMSSIC 2024) 一、【会议简介】 2024年经济管理与安全科学国际学术会议(EMSSIC 2024),将于繁华的上海城召开。这次会议的主题是“…...
什么是网站?
这篇文章是我学习网站开发,阶段性总结出来的。可以帮助你 通俗易懂 地更加深刻理解网站的这个玩意。 一,网站和网页的区别? 网站是由一个个网页组成。我们在浏览器上面看到的每一个页面就是网页,这些 相关的 网页组成一个网站。…...
pg_stat_replication.state 含义
在PostgreSQL中,pg_stat_replication视图提供了有关连接到主服务器的流式复制进程(备用服务器)的信息。该视图中的一个列是state,它指示复制进程的当前状态。 state列可以具有各种值: startup: This WAL sender 刚开始运行 catc…...
UABEA资产编辑异常解决方案:从报错到修复的完整技术故障排除指南
UABEA资产编辑异常解决方案:从报错到修复的完整技术故障排除指南 【免费下载链接】UABEA UABEA: 这是一个用于新版本Unity的C# Asset Bundle Extractor(资源包提取器),用于提取游戏中的资源。 项目地址: https://gitcode.com/gh…...
Rivets.js格式化器深度解析:自定义数据转换和业务逻辑处理
Rivets.js格式化器深度解析:自定义数据转换和业务逻辑处理 【免费下载链接】rivets Lightweight and powerful data binding. 项目地址: https://gitcode.com/gh_mirrors/ri/rivets Rivets.js是一个轻量级且功能强大的数据绑定库,它提供了灵活的格…...
Squeezer性能优化指南:提升dApp响应速度的7个技巧
Squeezer性能优化指南:提升dApp响应速度的7个技巧 【免费下载链接】squeezer Squeezer Framework - Build serverless dApps 项目地址: https://gitcode.com/gh_mirrors/sq/squeezer Squeezer Framework作为构建无服务器去中心化应用(dApps)的强大工具&#…...
PyCharm实战:从零到一完成YOLOv11自定义数据集训练
1. 环境准备与数据集配置 第一次用PyCharm跑YOLOv11训练时,我对着满屏的代码和配置文件差点放弃。后来发现只要环境装对了,后面都是顺水推舟。这里分享几个新手容易踩的坑:CUDA版本和PyTorch不匹配会导致显卡根本用不上,conda环境…...
AnythingLLM文档处理革命:如何用统一接口解析20+文件格式构建智能知识库
AnythingLLM文档处理革命:如何用统一接口解析20文件格式构建智能知识库 【免费下载链接】anything-llm 这是一个全栈应用程序,可以将任何文档、资源(如网址链接、音频、视频)或内容片段转换为上下文,以便任何大语言模型…...
手把手教你用哥斯拉Godzilla搭建渗透测试环境(附常见错误解决方案)
实战指南:Windows环境下渗透测试工具的高效配置与排错 在网络安全领域,渗透测试工具的正确配置往往是技术实践的第一步门槛。对于刚接触安全测试的新手来说,从零开始搭建环境不仅需要清晰的步骤指引,更需要理解每个环节可能出现的…...
最全|OpenClaw 2026年阿里云部署方法,小白7分钟掌握
最全|OpenClaw 2026年阿里云部署方法,小白7分钟掌握。本文面向零基础用户,完整说明在轻量服务器与本地Windows11、macOS、Linux系统中部署OpenClaw(Clawdbot)的流程,包含环境配置、服务启动、Skills集成、阿…...
毕设「零焦虑」实测:paperzz 四步流水线,把本科毕业论文从 0 写到 12000 字
Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿/期刊论文paperzz - 毕业论文-AIGC论文检测-AI智能降重-ai智能写作https://www.paperzz.cc/dissertation 谁本科毕设没陷入过「选题卡壳→文献凑数→框架乱套→格式崩溃」的死循环?对着万字要求…...
java毕业设计基于springboot+vue的滑雪场雪具租赁服务系统
前言 随着滑雪运动的普及和滑雪场规模的扩大,滑雪场对雪具租赁服务的需求日益增加。传统的租赁方式存在管理效率低下、用户体验不佳等问题,无法满足现代滑雪场的需求。因此,开发一个基于Spring Boot的滑雪场雪具租赁服务系统,旨在…...
AI产品经理崛起:技术人转型的新风口
技术浪潮下的职业新机遇人工智能(AI)技术的爆炸式发展正重塑全球产业格局,催生出一系列新兴职业。其中,AI产品经理(AI PM)作为连接技术与商业的桥梁,已成为当下最炙手可热的岗位。数据显示&…...
