首页 > 其他分享 >作用域和自执行函数

作用域和自执行函数

时间:2023-07-10 15:46:39浏览次数:39  
标签:function console 函数 作用域 jm var 执行 log

 

 

 

 

一、变量作用域

1.1局部变量

function jb()
{
    var a="我是局部变量"
    return a;
}

1.2全局变量

var a="我是全局变量"
function jb()
{
    console.log(a)
}
console.log(a)

二、自执行函数

在加载的时候 这个自执行函数就能自己运行

!(function()
{
    console.log(2)
}
)()

!表示运行成功

2.1拆解只执行函数的过程

对于这样一个函数 直接运行:

function()
{
    console.log(2)
}

除非前面有个var 否则会报错

var a =function()
{
    console.log(2)
}

用括号括起来 也不会报错,因为括起来之后就是一个整体,你可以将它理解为一个没有方法名称的方法、也就是闭包。

在括号后面再加一个括号就表示执行这个函数

(function()
{
    console.log(2)
}
)()

再js逆向中,通过这种方式 可以将一个函数的执行传给另一个函数执行 从而实现逆向。

 

三、内部函数如何外部调用

!(function()
{
    function jm()
    {
        console.log(2)
    }
    jm()
}
)()

可以看到内部函数也可以被掉哟个

如果将内部函数放到外部调用:

!(function()
{
    function jm()
    {
        console.log(2)
    }
}
)()
jm()

就会报错

要解决这个问题 可以在外部定义一个变量,然后将内部的jm赋值给这个变量

var jm_;
!(function()
{
    function jm()
    {
        console.log(2)
    }
    jm_ = jm;
}
)()
jm_()

这里就非常方便我们进行js逆向

因为一个网站的加密就1个或者几个函数,

大概流程是这样

用户输入明文的数据 -> 方法1 -》 发包函数 。。。 -》 加密函数

我们只需要将加密函数拿出来,用python或者易语言去模拟发包,执行这个js的加密函数,

这个加密函数可能嵌套再里面 这个时候 就可以用全局变量的方式 将它拿到外面。

四、变量类型的转换

所有类型的变量 加上字符串 就会变成字符串

所有类型的变量 加上字符串 就会变成字符串

比如一个方法 加上字符串,就会变成字符串

var jm_;
!(function()
{
    function jm()
    {
        console.log(2)
    }
    jm_ = jm;
}
)()
jm_+""

 

标签:function,console,函数,作用域,jm,var,执行,log
From: https://www.cnblogs.com/xingmeng63/p/17541297.html

相关文章

  • String s=new String(“hello”)的执行过程
    一.介绍String是Java.long包下的String类,是一个特殊的引用类型,用于表示字符串。它提供了许多方法来操作和处理字符串,比如连接、截取、查找、替换等。String类内部使用字符数组(char[])来存储字符串的内容,value字段被final修饰,String对象一旦创建后,其值就不可改变。Strin......
  • JS中使用Promise.all控制所有的异步请求都完成后,在执行后续逻辑
    使用场景为,在js中连续的几个异步耗时操作,后面的耗时操作需要使用第一个操作的返回结果。例如调用ajax异步接口,需要先创建完主表,然后拿到主表id在去循环创建明细表,等全部创建完成后,弹出提示来,或者失败提示。通常情况,在耗时操作完成后在去调用,需要将异步方法转成同步方法,结合回调函......
  • python 执行超时装饰器
    代码:importsignalclassTimeoutError(Exception):passdeftimeout(seconds=10,error_message='Timeout'):defdecorator(func):defwrapper(*args,**kwargs):def_handle_timeout(signum,frame):raiseTi......
  • 反三角函数
    反三角函数反三角函数是反函数。正弦函数\(y=\sinx\)的反函数为\(y=\arcsinx\)。正弦函数的定义域为\(D=(-\infty,+\infty)\),值域为\(R=[-1,1]\)。其反函数的定义域\(D=[-1,1]\),值域为\(R=[-\frac{\pi}{2},\frac{\pi}{2}]\)。\(x\)\(-1\)\(-\frac{\sqrt{3}}......
  • 无人车轨迹规划,利用代价函数求解最优轨迹,matlab程序 这
    无人车轨迹规划,利用代价函数求解最优轨迹,matlab程序这个程序是一个用于车辆导航和避障的示例。它使用了一种基于目标函数和障碍函数的规划方法,通过计算不同方向上的函数值来选择最佳移动方向,并模拟车辆在真实环境中移动的过程。程序的主要功能是模拟车辆在给定的区域内避开障碍物......
  • 函数对象
    函数对象定义定义了operator()的对象就是函数对象。函数的封装可以使用std::function对函数(指向函数的指针)、lambda表达式、bind表达式、函数对象、指向成员函数的指针、指向成员变量的指针;简单示例#include<functional>#include<iostream>intfun(inta){std::c......
  • system函数的风险和解决
    system函数的风险和解决源码摘录/*ExecuteLINEasashellcommand,returningitsstatus.*/staticintdo_system(constchar*line){intstatus=-1;intret;pid_tpid;structsigactionsa;#ifndef_LIBC_REENTRANTstructsigactionintr,quit;#e......
  • 粒子群算法PSO优化LSSVM最小二乘支持向量机惩罚参数c和核函数参数g,用于回归预测,有例子
    粒子群算法PSO优化LSSVM最小二乘支持向量机惩罚参数c和核函数参数g,用于回归预测,有例子,易上手,简单粗暴,直接替换数据即可。仅适应于windows系统。质量保证,完美运行。这段程序主要是一个基于粒子群优化算法(ParticleSwarmOptimization,PSO)的支持向量机(SupportVectorMachine,SVM)......
  • 当函数遇上图片,比如Filter
    Filter函数可以说是包揽了一切查找,嗯,够辛苦。有木有想过,如果Filter遇上图片,又是怎样的风景呢?就是这个样几滴……这里的图片可以是两种,一种是由Image函数生成的,另一种是放置在单元格中的图片。其实,这并不是Filter的独享,因为图片作为单元格对象,所以几乎可以说是所有函数,都能对其进行......
  • Python | os.makedirs函数的使用
    概述os.makedirs()方法用于递归创建目录。如果子目录创建失败或者已经存在,会抛出一个OSError的异常,Windows上Error183即为目录已经存在的异常错误。如果第一个参数path只有一级,则mkdir()函数相同。语法makedirs()方法语法格式如下:os.makedirs(path,mode=0o777)参......