JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )

这个 JavaScript 表达式看起来很神秘,实际上是一个字符串的拼接。其中 __ = !$ + $,那么 __$ = true + $

整体来看,这个表达式最终拼接出来的就是 JavaScript 这个字符串。

拆解一下,就是:

  • __$[+$],这个 $ 表示字符串末尾的一个字符,+ 的作用是将字符串的末尾字符转化为数字类型。而这个数字,正好就是 1,所以 __$[+$] 等价于 __$[1],也就是 a
  • ({} + $)[_/_],这个 / 也是一个除法运算符,但是被用作数组下标(JavaScript 里也是可以这么玩的)。{} 转换为字符串后变成了 "[object Object]",所以 ({} + $) 就等价于 "[object Object]" + $,其中 $ 就是字符串末尾的字符,因为类型转换的时候字符串会自动转成数字。所以这个表达式等价于 "g"[4],也就是得到 undefined
  • ({} + $)[_/_] 这一段在现代浏览器上的结果有所不同,分别是 undefinedo。原因是在早期的浏览器中,undefined 这个值可以被重新赋值,所以出现了 bug。不过现在这种用法已经不推荐了。

示例:

// 示例1
const __ = !$ + $;
const __$ = true + $;
const result = __( __$[+$] ) + 
  ({} + $)[_/_] + 
  ({} + $)[_/_];

console.log(result); // 输出 "JavaScript"

// 示例2
const __ = !$ + $;
const __$ = true + $;
const arr = [ "a", "b", "c" ];
const result = __( __$[+$] ) + 
  ({} + $)[_/_] + 
  arr[ ({toString: arr.fill})() ];

console.log(result); // 输出 "JavaScript"

这两个示例中,第一个示例仍然是拼接出了 "JavaScript" 这个字符串。第二个示例则是用一个数组的 fill 方法来间接获取了字母 "a",最终也拼接出了 "JavaScript" 这个字符串。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] ) - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • css教程之样式表的基本语法(二) class(类)和id的一个小实例

    在CSS中,class和id是两个常用的选择器,它们可以用来为HTML元素添加样式。本攻略将详细讲解class和id的基本语法,并提供两个示例说明。 class和id的基本语法 class class是一种用于标识HTML元素的选择器,它可以用来为多个元素添加相同的样式。class选择器以.开头,后面跟着class的名称,例如: .my-class { co…

    css 2023年5月18日
    00
  • js实现简单div拖拽功能实例

    下面是关于如何用 JavaScript 实现简单的 div 拖拽功能的攻略。 1. HTML 结构 首先,在 HTML 中需要先定义要拖拽的 div 元素,代码如下: <div id="draggable"> <!– 这里可以放置需要拖拽的内容 –> </div> 2. CSS 样式 接着,为这个 …

    css 2023年6月10日
    00
  • HTML设置超链接字体颜色和点击后的字体颜色

    HTML的超链接是网页制作中非常常用的元素,超链接字体颜色和点击后字体颜色是影响页面美观度的重要因素。下面是详细讲解“HTML设置超链接字体颜色和点击后的字体颜色”的完整攻略。 设置超链接字体颜色 通过style属性来设置超链接字体颜色。 html <a href=”http://www.example.com” style=”color:blue;”…

    css 2023年6月9日
    00
  • hCalendar微格式 关于事件和基于时间或地点的活

    hCalendar是一种微格式,用于标记网页上的事件和活动,以便用户和搜索引擎更轻松地识别和使用。下面是使用hCalendar微格式的攻略: 标记 hCalendar微格式的标记包括一个class属性为”vevent”的HTML元素和多个包含事件信息的子元素。以下是一个基本的例子: <div class="vevent"> &…

    css 2023年6月10日
    00
  • html div 透明样式示例代码

    HTML中的div是一个容器标签,可以用来组织网页中的不同元素、模块或小部件。下面我们来讲解一下如何给html div添加透明样式。 HTML透明样式基础 在HTML中,可以使用CSS的opacity属性来控制元素的透明度。该属性的取值范围是0.0到1.0之间,其中0.0表示完全透明,1.0表示完全不透明。如果设置介于0.0和1.0之间的任何值,元素的透明度…

    css 2023年6月9日
    00
  • 详解webpack和webpack-simple中如何引入css文件

    webpack是一个常用的现代化JavaScript应用程序打包工具,而webpack-simple是webpack的官方脚手架。下面我们将详细讲解在webpack和webpack-simple中如何引入css文件。 在webpack中引入css文件 安装依赖 首先需要安装用于处理css的依赖包css-loader和style-loader。可以使用以下命令…

    css 2023年6月10日
    00
  • js网页滚动条滚动事件实例分析

    《js网页滚动条滚动事件实例分析》是一个介绍JavaScript滚动事件的文章。本文主要讲解如何使用JavaScript处理网页滚动事件的方法和技巧。 监听网页滚动事件 JavaScript可以通过addEventListener()方法监听网页的滚动事件,在事件触发时执行相应的操作。下面是一个基本的监听滚动事件的示例: window.addEventLis…

    css 2023年6月10日
    00
  • HTML九宫格布局实现方法

    下面是HTML九宫格布局实现方法的完整攻略。 HTML九宫格布局实现方法 什么是九宫格布局? 九宫格布局指将一个页面或者一个区域按照九宫格的形式进行划分,每一个区域都可以放置不同的内容,通常用于制作网站的首页或者某些特定的页面。 实现九宫格布局的方法 方法一:使用表格布局 表格布局是一种简单实用的布局方式,通过设置表格的行和列的数量以及宽度和高度可以轻松地实…

    css 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部