首页 > 其他分享 >js黑客思想(1)

js黑客思想(1)

时间:2023-07-14 16:25:17浏览次数:38  
标签:十六进制 console log 思想 x61 js 黑客 字符串 转义

十六进制

  十六进制,它只在字符串内部起作用,如果您尝试将其用作标识符,他们将失败。一个有趣的方面是,十六进制转义必须使用小写的 x,如果使用大写的 X,它将不会被视为十六进制转义,js 引擎将简单地将字符串处理为字面上的大写 X,后面跟着你指定的字符。

 '\x61'//a
 "\x61"//a
 `\x61`//a

 functiona(){}
 \x61()//fails

  unicode 转义也适用于字符串,并且也允许在标识符中使用。

console.log('\u0061')

function a() {
  console.log('a func')
}

a() // a func

  你可以将他们与 eval 或类似 setTimeout 的其他形式的 eval 一起使用。在使用这些函数时,你必须对它们进行双重转义,甚至如果它们嵌套在一起,可能需要更多的转义!如果你使用 eval,十六进制将首先被解码,然后执行,以下代码是完全有效的:

eval('\x61=123') // a=123

// 对于unicode转义,你也可以进行相同的操作。
eval('\\u0061=123')

  你可以转义任何不是转义序列的字符,并将它们视为实际的字符。

'\H\E\L\L\O' //HELLO

  有趣的是,你可以在行尾使用反斜杠来将其延续到下一行:

'Icontinue\
ontothenextline'

let foo = {
  'bar\
  ': 'baz'
}

  双引号和单引号的字符串不支持多行,除非你使用反斜杠进行换行续写,但模板字符串支持多行和换行续写的行为。

let x =
  'a\
b\
c'

x === 'abc' //true

let x = `a
b
c`
x === 'abc' //false

  模版字符串证明了换行续写行为的存在,因为换行符没有被添加到字符串中。第二个代码片段展示了模版字符串支持换行,并将其包含在字符串中。模版字符串具有一个特性,允许你在占位符中执行任意的 js 表达式,使用'${}'来定义。

;`${
  7 * 7
}` //49
`${`${`${7 * 7}`}`}` //49

Call 和 Apply

  Call 是每个函数的一个属性,它允许你调用函数并在第一个函数中更改函数的 this 值,并将任何后续参数传递给该函数。

function x() {
  console.log(this.bar)
}

let foo = { bar: 'baz' }
x.call(foo)

function x() {
  console.log(this.bar) // undefined
  console.log(arguments[0]) // 1
  console.log(arguments[1]) // 2
  console.log(this) //Window
}

x.call(null, 1, 2)

标签:十六进制,console,log,思想,x61,js,黑客,字符串,转义
From: https://www.cnblogs.com/wlxll/p/17554016.html

相关文章

  • js实现多列排序
    js实现多列排序根据业务逻辑调整sortData的数据。排序的规则是按照第一列排序,第一列相同按照第二列排序,依次类推//要排序的数据constarray=[{name:'甲'asd,age:10,money:100},{name:'亿',age:10,money:90},{name:'丙',age:9,money:100}]//......
  • Clickhouse、Mysql、Presto数据库解析Json数据
    一、Clickhouse解析Json1、visitParamExtractBool(json,name)→提取json中的name字段,返回UInt8,0或1  例:visitParamExtractBool('{"name":true}','name')ASbool2、visitParamExtractInt(json,name)→提取json中的name字段,返回Int型的值  例:visitParamExtractInt......
  • 【859】JS开发相关
     实例我的第一个JavaScript程序FriJul14202314:08:26GMT+1000(AustralianEasternStandardTime)显示日期尝试一下» ......
  • nodejs中jwt的使用
    前言在浏览器和服务端的交互中,http请求是无状态的,那在web项目中准确无误的保存用户的登录状态是前后端交互中必须要解决的问题。目前在web端解决登录认证的问题分为三种base64session/cookietoken下面介绍下token中jwt实现登录验证的方式。基本概念了解下几种不同的认证方式base......
  • html2canvas + jspdf 实现前端将页面内容生成 PDF
    一、简易步骤(仅支持下载一页,无法分页)1.下载插件模块npminstallhtml2canvasjspdf--save2.编写代码importhtml2canvasfrom'html2canvas'//引入插件import{jsPDF}from'jspdf'//html2canvsjspdfpdf文件下载exportconstdownloadPdf=(dom,name......
  • bpmn.js修改默认节点颜色
    从node_modules依赖中找到定义图形颜色的js文件bpmn-js/lib/draw/BpmnRenderer.js找到BpmnRenderer.js文件的以下代码: 这里是代码:找到BpmnRenderer.js文件的以下代码:vardefaultFillColor=config&&config.defaultFillColor,  defaultStrokeColor=config&&config......
  • 模块化Common.js与ES6
    为什么要模块化开发1.依赖关系(a文件依赖b文件中的方法,b文件必须在a文件之前引入)2.命名问题(多个文件变量名,方法名相同会出现覆盖)3.代码组织(后期不好维护)模块化规范有1.Common.js规范node,webpack使用的Common.js规范Common.js的导出与引入结论:1.module.expor......
  • antd from 表单中的key 不能绑定input中的字段 Input.js:207 Uncaught (in promise)
    <Formclass="NewVersion"ref="formRef"name="NewVersion":model="formData"><Spacev-for="(newPg,index)informData.version":key="index"style="dis......
  • yarn : 无法加载文件 E:\nodejs\yarn.ps1,因为在此系统上禁止运行脚本。问题解决
    1.在电脑的开始菜单中,搜索PowerShell ,然后以管理员身份运行,如下所示:2.以管理员身份运行后,会出现命令窗口,接下来,输入命令get-ExecutionPolicy 查看权限,会看到它的返回值是 Restricted ,意思是当前是禁用的。3.执行命令:set-ExecutionPolicyRemoteSigned,没有报错就......
  • 如何在进入url后从json字符集合中选择某个键值对的值?
    进入URL返回的字符集合, 假如只获取result中的formatted_address的值?1、创建查询条件query?选择键 formatted_address? 2、设置响应在发出HTTP请求后接收响应并将其存储在名为xxx变量中,你可以使用XMLHttpRequest或fetchAPI来进行异步请求。......