javascript:可以运行的噪音

为我的博客做了一个很有 geek 风格的关于页面。

运行下面 javascript 代码,可以看到我的信息。

 

(+[[]+(1<<1<<1<<1)+(1^1<<1)+(1<<1>>1)+(-~1<<1<<1)+(1.1>>1.1)+(11>>>1)])[[(!!/-/+{})[111^111]+[[]+{}][!1&.1][1|1>>1|1]]+([111/[]+[]][+(1>1)][([]+{})[11-1>>1]+[[],[]+{}+[]][[]+1][1]+(/^/[1]+[])[1|1>>1|1]+[{},1e1,!{}+[]][1+1][1<<1^1]+(11/!{}+{})[~1+1e1+~1]+[!!{}+{}][[]&111][1&1]+(/^/[111]+[])[11^11]+[{},[{}]+{},1][1+[]][11-~1+11>>1]+(!!1+{})[1&1>>1]+([]+{1:1}+[])[1|1]+[[]+!!1][111>>>111][1<<1>>1]]+[])[([]+![111])[1|1<<1|1]+[/=/,[]+[][11]][1|[]][1>>1]+([{}]+{})[1+!![1]]+[1,!1+/~/][1%11][1^1<<1]+(111/[]+{})[~1+1e1+~1]+[!!/-/+/-/][111%111][+!!1]]((~1+1e1+1)+((!1&.1)==([]+/-/[(!![111]+{})[1^1]+(!![1]+[])[1<<1^1]+(!{}+{})[1^1<<1]+(!![1]+/-/)[+(1>1)]])[+(1>1)]),1-~1<<1)](~1-~1e1<<1<<1)+":"+(([]===[])+/-/)[5]+(([]===[])+/-/)[5]+(+[[]+(1e1>>1)+(~1+1e1+~1)+(!1&.1)+(111%11)+(1+1<<1)+(1<<1^11>>1)+(1<<1<<1)+(~1+1e1+1)+(+(1>1))+(+[])+(~1-1+11)+(-~1<<1<<1)+(1-~1<<1)+(~1+1e1)])[[(!!/-/+[])[11&[]]+[[]+{11:11}+[]][111>>111][1+[]]]+([11/!1+/1/][1&1>>1][([{}]+{})[1e1>>1|1]+[[],[]+{111:111}+[]][1|1][111%11]+([]+[][11])[1<<1>>1]+[{},1e1,!/~/+{}][1<<1^1>>1][1<<1^1]+([]+11/!{})[~1+1e1+~1]+[!![111]+[]][1%1][1&1]+([]+[][111])[.1^!1]+[{},[]+{},1][111%11][11-~1+11>>1]+([]+!!1)[111>>>111]+([]+{}+[])[[]+1]+[!!1+[]][1^1][111%11]]+[])[(!1+{})[1^1<<1]+[/=/,[]+/^/[11]][1|[]][11.11>>11.11]+([]+{}+[])[~~(1.1+1.1)]+[1,!{}+/~/][1][1|1<<1]+(1/!{}+[])[~1+1e1+~1]+[!![1]+{}][111.111>>111.111][1+[]]]((11^1<<1)+((1>>1)==([]+/-/[(!!/-/+/-/)[+(111>111)]+(!![11]+[])[1-~1]+(![11]+{})[1|1<<1|1]+(!!{}+[])[11%11]])[111.111>>111.111]),11+1>>1)](~1-~1e1<<1<<1)+"."+(+[[]+([]+1)+(1-~1<<1)+(1+1<<1)+(1|1<<1)+(1<<1<<1<<1)])[[(!!1+{})[!1&.1]+[[]+{}+[]][1&[]][1+[]]]+([11/[]+{}][+(111>111)][([{}]+[{}])[1e1>>1]+[[],[]+{}][[]+1][+!!1]+(/^/[111]+/&/)[1&1]+[{},1e1,!1+[]][1<<1][1^1<<1]+(111/!{}+/1/)[~1+1e1+~1]+[!!/-/+[]][11>>11][1|1]+([][1]+/&/)[1.1>>1.1]+[{},[{}]+{},1][~~1][1+1e1+1]+([]+!!1)[1^1]+([]+{})[1&1]+[!!1+{}][!1&.1][1|[]]]+[])[([]+!1)[1|1<<1|1]+[/=/,[]+/^/[11]][111%11][11.11>>11.11]+([{}]+[{}])[~~(1.1+1.1)]+[1,[]+!/~/][1|1>>1|1][1^1<<1]+([]+11/[])[11+1>>1]+[!!/-/+{}][+(1<1)][~~1]]((1e1-1)+((+[])==([]+/-/[(!!1+[])[!1&.1]+(!!/-/+/-/)[1|1<<1|1]+(!1+{})[1<<1^1]+(!![1]+/-/)[11>>11]])[111^111]),-~11>>1)](~1-~1e1<<1<<1)

 

如何实现的呢?

@OKter 说是 ASCII 码拼接。到底是不是呢?

第一步

先来个简单的,就以 justjavac 为例吧。首先我们要输出 j。

下面这段代码可以输出 j:

(1+{})[4]

解释:代码 1+{} 的结果是 "1[object Object]", 显然,我们得到了一个包含 j 的字符串。但为什么会如此奇怪呢?毕竟我们都期望 1+{} 的结果应该是 1。

对象加法

有下面这样的一个加法操作。

value1 + value2

在计算这个表达式时,内部的操作步骤是这样的 (§11.6.1):

  1. 将两个操作数转换为原始值 (以下是数学表示法的伪代码,不是可以运行的 JavaScript 代码):

     prim1 := ToPrimitive(value1)
     prim2 := ToPrimitive(value2)
    

    PreferredType 被省略,因此 Date 类型的值采用 String,其他类型的值采用 Number。

  2. 如果 prim1 或者 prim2 中的任意一个为字符串,则将另外一个也转换成字符串,然后返回两个字符串连接操作后的结果。

  3. 否则,将 prim1 和 prim2 都转换为数字类型,返回他们的和。

更多详细内容参考

 

由于字符串可以当作数组一样取里面的元素,于是 (1+{})[4] 就得到了 j。

第二步

既然我们得到了 j,那下一步就是 u 了。我们还是按照这个思路,哪个字符串里面还有 u 呢? 在 javascript 中确实有这么一个特殊的值,含有 u: "undefined",思来想去,可以使用这段代码:

/1/[1]+[]

分开解释:

  1. /1/ 是一个正在表达式

  2. 当他后面跟上 [] 时,被强制转换成了数组,然后去取里面的元素(第二个元素),得到的结果是 undefined(注意:是 undefined 值,不是字符串)

  3. 把 undefined 转换成字符串,在这里我们把它和数组相加。

呵呵,上面使用正在表达式 /1/ 有点儿卖弄的嫌疑,其实用 1[1] 就够了。 为了更有 geek 感,可以多出现 0 和 1。通过 /1+/[+0]+[+1] 我们可以得到字符串 "undefined1"。

使用数组操作符把我们想要的 u 提取出来, (/1+/[+0]+[+1])[0]。

现在我们已经得到了字符串 "ju" 了。按照这种方法,我们可以得到其他的字符串。没有做不到的,只有想不到的。

问题来了

用这种方法能拼出所有的字符吗? @长夜 则提出了更深的问题: “可以拼中文吗?”

@TODO 待续……

大功告成

当我们得到了所有的字符串,就可以使用 + 号把他们连接起来。 你以为这就完了吗?当然远远没有,我们应该让我们的代码更 Cool,更有 geek 范。

相关阅读:

JavaScript实现中值滤波(附完整源码) 阅读详情

相关推荐

66.电视噪音动画特效

效果 (源码网盘地址在最后) 视频演示 「前端编程实战 66」电视噪音动画特效 视频地址一:https://www.ixigua.com/6850386816432865806/ 视频地址二:https://www.bilibili.com/video/BV1Jv411q7oh/ 源码 index.html <!DOCTYPE html> <html lang="en

粉丝们务必加入微信粉丝群 4117

使用js实现基于可视布局信息的网页噪音去除的测试方法

 可视布局信息的网页噪音去除方法很早就从网上看到,但是苦于没有java中没有简单的方法能够得到网页元素位于屏幕中的实际位置,所以一直没做过,前一段时间学js,突然发现js能很容易得到每个网页元素位于屏幕中的实际位置。所以就写了这个简单函数测试了一下,好像效果还不错,不过个人认为基于可视布局信息的网页噪音去除最好和其他的方法结合使用,单独使用准确率还不是很好。function getElementT

dongle2001的专栏 1509

perlin.js 噪声js库

噪声就是给定一个输入变量,生成一个值在0~1范围内的伪随机变量的函数。在图形学中一般是输入一个坐标得到一个范围在0~1之间的变量,在利用各种颜色计算得到一些比较酷炫的效果,像火焰、云彩、地形等。

javascript 过滤_了解javascript过滤噪音

javascript 过滤Javascript filter() function is one of my favorite array functions and can be very useful in many cases. But it can be tricky to get the hang of at first and to get over the that bump in ...

weixin_26717681的博客 628

node-noise3d:JavaScript中的3D噪点

noise3d 安装 npm install noise3d 用法 var noise = require ( "noise3d" ) ; var perlin = noise . createPerlin ( { interpolation : noise . interpolation . linear , permutation : noise . array . shuffle ( noise . array . range ( 0 , 255 ) , Math . random ) } ) ; var brownian = noise . createBrownianMotion ( { octaves : 4 , persistence : 0.5 , noise : perlin } ) ; for ( var x = 0 ; x < 512 ; x ++ ) {

JS的100多个犀利效果(有效果图,有代码)

网页中的各种JS神奇效果,有源码,有图片,可直接拿进自己项目中用。

html5杂音,搜索优化中说的网页噪声到底是什么?怎么去噪?

理想情况下seo要做的事情很多,其中去除冗余代码是很重要的一部分。为什么要去除冗余代码?这是由于页面上线之后会多出很多无用的代码,比如空格、重复的div和js/css调用。尤其是有些网站是直接从互联网下载下来二次开发的源码,其中很大一部分代码对于新网站来讲都是无用的,完全在浪费服务资源。外联样式和内联样式的css和js也是老生常谈的问题,确切的来说是属于web前端优化的一部分,但由于绝大部分站点项...

weixin_29292535的博客 955

js 验证码 带噪音线的

很容易掌握的一款验证码程序。本例是用c# 2008写的

【低配】柏林噪声地形生成

将柏林噪声用python和JavaScript两种语言(基本)实现

azkbbys的博客 1900

LightGBM学习笔记

LightGB学习笔记1. lightgbm概述1.1 lightgbm介绍1.2 lightgbm和xgboost对比2 .直方图算法及改进2.1 直方图算法2.2 直方图算法改进2.2.1 GOSS算法3.树的生长策略4.系统设计5. 实战 lightgbm是基于boosting的学习框架,使用的是基于决策树的学习算法,具有更快的训练速度、更低的内存使用、更高的正确率、并且能够支持并行化学习,可以用来处理大规模数据,本文主要是针对学习视频https://www.bilibili.com/video/BV

一一xi的博客 3304

半导体测试(一)

探针台是一种用于在晶圆上进行配合探针卡进行电路量测的设备,在测试过程中,探针工作站会将探针与晶圆上的每个die进行接触,以进行电性测量。在这个过程中,每个die都被测试以确保它能基本满足器件的特征或设计规格书(Specification),通常包括电压、电流、时序和功能的验证。晶圆是一个圆形的硅片,在这个半导体的基础之上,建立了许多独立的单个的电路;在所有的die都被探测(Probed)之后,晶圆被切割成独立的dice,这就是常说的die saw,所有被标示为失效的die都被报废,。

m0_37606066的博客 8424

rot.js噪音生成技术:使用Simplex和Perlin噪音创建自然地形

rot.js是一款强大的JavaScript Roguelike游戏开发工具包,提供了丰富的地牢生成、视野计算和噪音生成等功能。其中,噪音生成技术是创建自然地形的核心,通过Simplex和Perlin噪音算法,开发者可以轻松生成逼真的游戏地形。 ## 噪音生成在游戏开发中的重要性 🎮 在Roguelike游戏中,自然地形的生成对于营造沉浸感至关重要。传统的随机地形往往显得生硬且不自然,而噪音

gitblog_00723的博客 922

Qwen-Image-2.1本地图像生成整合包:8G显存一键部署指南

文生图模型是AI视觉创作的核心技术,其本地化部署需兼顾模型能力、硬件适配与工程易用性。Qwen-Image-2.1作为支持文本生成、图像编辑与多图参考的统一架构模型,突破了传统Diffusion模型在消费级显卡上的运行瓶颈。通过AWQ量化、vLLM推理优化与ComfyUI节点重构,实现8G显存稳定运行,显著降低CUDA环境配置复杂度。该方案面向设计师、教师与普通用户,提供开箱即用的本地AI图像工作流,适用于电商主图迭代、教学配图生成与IP角色延展等真实场景,让高质量图像生成真正走出云端,落地桌面。

weixin_29082143的博客 397

three.js在canvas画布上生成噪音图,然后创建凹凸贴图(vue中使用three.js79)

使用高光贴图创建色彩鲜明的地球1.demo效果2. 实现要点2.1 引入噪音函数库2.2在画布上绘制噪音图2.3 创建凹凸贴图材质的网格对象2.4 更新bumpScale4. demo代码 1.demo效果 2. 实现要点 2.1 引入噪音函数库 在public目录下的index.html文件中通过< script >标签引入perlin.js 文件 <script type="text/javascript" src="./libs/perlin.js"></script&

点燃火柴的博客 1020

实战5:农作物产量预测 蔬菜产量预测 lstm 完整代码数据-可直接运行-计算机毕设

实战5:农作物产量预测 蔬菜产量预测 lstm 完整代码数据-可直接运行-计算机毕设

机器学习深度学习业余选手 1257

基于Requests的百度图片搜索爬取技术详解

本文介绍了一种高效获取百度图片搜索数据的混合请求爬虫技术。该技术结合HTML解析与JSON API调用,通过分析百度图片搜索的网络通信模式,实现了首页HTML解析获取初始参数、后续页面直接调用JSON接口的双重机制。系统采用模块化设计,包含Cookies解析、智能请求分发、数据提取、图片下载等核心模块,支持自定义关键词和爬取页数配置。关键技术包括动态参数管理、正则表达式提取、JSON数据处理等,相比传统爬虫方法具有效率高、资源消耗低的优势,为计算机视觉研究提供了可靠的大规模图片数据采集方案。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 419

JS Analyzer实战案例:从JavaScript文件中挖掘AWS密钥与敏感API的3个技巧

JS Analyzer是一款强大的Burp Suite扩展工具,专为JavaScript代码分析设计,能精准识别并提取AWS密钥、敏感API端点等关键信息,有效降低噪音干扰。在Web应用安全审计中,它能帮助安全人员快速定位潜在的敏感信息泄露风险。 ## 技巧一:利用内置正则模式精准捕获AWS密钥 JS Analyzer的核心功能之一是通过预设的正则表达式模式识别各类敏感凭证。在[js_anal

gitblog_00262的博客 790

10|Git Diff 与增量代码识别:本次到底改了哪些代码?

本文介绍 Git Diff 和增量代码识别,帮助你理解精准测试如何先找到本次真正变化的代码。测试开发工程师。Java 后端开发工程师。质量平台 / DevOps 平台建设者。想了解精准测试落地方法的技术负责人。

专注 AI 精准测试平台实战落地,分享从代码 Diff 到回归决策的完整工程闭环。主张“先建数据链路,再上 AI 智能”,让测试从“靠经验”走向“基于风险”。 160

uniapp+springboot音乐白噪音专注记录小程序

Uniapp与SpringBoot结合开发的音乐白噪音专注记录小程序,旨在为用户提供沉浸式学习/工作环境,通过白噪音、自然音效等功能提升专注力,同时集成任务记录与数据分析模块。前端采用Uniapp实现多端兼容(微信小程序、H5等),后端基于SpringBoot提供RESTful API支持,结合MySQL数据库进行数据存储。1、基于物品协同过滤算法,ItemCF 是一种通过分析“商品与商品之间被共同购买的关系”来为用户推荐商品的协同过滤算法,具有稳定、可解释、不依赖商品内容的优点。

qq2295116502的博客 941

SAP Fiori 会话超时全解析:从 Launchpad 到 Identity Authentication 的统一策略

SAP Fiori会话超时机制解析与配置策略 本文深入探讨SAP Fiori项目中的会话超时机制,分析其对系统安全和用户体验的双重影响。文章系统拆解了SAP Fiori Launchpad与SAP Cloud Identity Services之间的会话超时工作原理,重点介绍了两种超时机制:服务器驱动的超时(通过SESSION_TIMEOUT_STOP_DATA_REFRESH参数控制)和UI驱动的超时(通过SESSION_TIMEOUT_INTERVAL_IN_MINUTES参数控制)。文中结合制造业产线

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 212

【RK3399 Ubuntu】基于rk3399的lxde的lubuntu桌面移植适配记录之第二步:最基本Ubuntu根文件系统的相关常用工具完善

文章目录1.使能系统网络管理服务1.1 安装驱动modules管理工具1.2 使能网络服务2.终端自动补全命令功能3.安装ssh服务4.安装系统信息查看工具5.安装resize工具6.安装lrzsz工具7.使能rc.local服务7.1 修改服务Install块7.2 使能rc.local.service服务7.3 添加执行脚本且赋予执行权限 续接上文,本文主要完善前面已经制作好的rootfs 1.使能系统网络管理服务 1.1 安装驱动modules管理工具 apt-get install kmod 1.

wang 恒 的博客 1385

STFU源码解析:仅60行代码实现的噪音反击神器,开发者必看

在日常生活中,我们常常遇到公共场所有人大声播放视频或喧哗的情况,礼貌提醒往往收效甚微。STFU(Shut The Fuck Up)作为一款仅用60行代码实现的噪音反击神器,通过巧妙的音频反馈原理,让噪音制造者主动降低音量。本文将深入解析这个充满创意的开源项目,带你了解如何用极简代码解决现实问题。 ## 项目诞生:从机场噪音到创意解决方案 STFU的诞生源于开发者在孟买机场的一次真实经历——一名

gitblog_00709的博客 850

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: 高效程序员的秘密之——正则表达式
下一篇: PHP 最佳实践(译)——PHP 容易混淆技术的实用指南
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值