爬虫系列JS逆向,JavaScript基础语法2

本文介绍了JavaScript逆向的基础,包括函数语法(有名函数、函数赋值、自执行函数和内部函数)、JavaScript对象的创建、设置、访问和方法,以及JSON转换和事件处理,展示了如何在浏览器中理解和控制页面交互过程。
摘要由CSDN通过智能技术生成

JS逆向

JavaScript逆向基础



前言

众所周知,JS 是当前最流行、应用最广泛的客户端脚本语言,在 Web 开发领域有着举足轻重的地位。js逆向主要是逆向js在浏览器中控制页面交互过程。


JavaScript 函数语法

函数就是包裹在花括号中的代码块,前面使用了关键词 function:

function functionname()
{
    // 执行代码
}

注: JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。

1.有名函数

代码如下(示例):

function hello(){
    console.log('hello')
}
xxs();

2.函数赋值表达式定义函数

代码如下(示例):

hello= function (name){
    console.log("hello " + name)
}
hello("LiLei");

3.自执行函数

无需调用该函数, 该函数会自动执行

!(function () {
  console.log("Hello World!");
})();

4.内部函数导出

var _in_call;
!(function () {
    function in_call(){
        console.log('Hello World!')
    }
    _in_call = in_call;
})();
_in_call();

JavaScript 对象

JavaScript 是一种面向对象的编程语言,在 JavaScript 中几乎所有的东西都是对象。

  • 内置对象中有 Object、Function、Array、String、Number、Boolean 等原生对象构造函数
  • 在 JavaScript 中,一切皆对象(除 undefined、null 外)
  • 所有对象都是基于 Object 来创建,其中的原理是原型继承

我们可以将对象看作是一个属性的无序集合,每个属性都有一个名称和值(键/值对)以 name:value 对呈现。

var car = {name:"BMW", price:100000.0, color:"white"};
dir(car);

dir可以看到 car 是Object对象

1.创建对象

通过new操作符后跟要创建的对象类型的名称来创建

car = new Object();
dir(car);

每个Object类型的实例共有的属性和方法:

  • constructor: 保存着用于创建当前对象的函数。
  • hasOwnProperty:用于检测给定的属性在当前对象的实例中是否存在。
  • isPrototypeOf : 用于检查传入的对象是否是当前对象的原型
  • propertyIsEnumerble : 用于检查给定属性能否使用for-in来枚举
  • toLocaleString() : 返回对象的字符串表示。
  • toString() : 返回对象的字符串表示。
  • valueOf() : 返回对象的字符串,数值,或布尔表示。通常和toString() 返回的值相同。

2.对象设置与访问

car.name = "BMW";
car['color'] = "red";

console.log(car['name']);
console.log(car.color)

3.对象方法

var car= {
	 name:"BMW", 
	 color:"white"price:100000.0, 
   salePrice: function()
   {
      return this.price * 1.5;
   }
};

注: 在对象方法中, this 指向调用它所在方法的对象。

4.JSON转换

JSON.parse()	    // 用于将一个 JSON 字符串转换为 JavaScript 对象。
JSON.stringify()	// 用于将 JavaScript 值转换为 JSON 字符串。

:经常使用在数据的处理方面,比如后台返回数据。所以后台返回的加密数据,可以使用分析JSON.parse 来找加密位置 体现在请求后
JSON.stringify 用在数据加密后,变成字符串传给后台服务器 体现在请求前

// 要实现从JSON字符串转换为JS对象,使用 JSON.parse() 方法
var obj = JSON.parse('{"a": "Hello", "b": "World"}')
// 要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法:
var json = JSON.stringify({a: 'Hello', b: 'World'});

事件(event)处理

事件是发生在 HTML 元素上的事情
JS 事件(event)是当用户与网页进行交互时发生的事情,例如单机某个链接或按钮、在文本框中输入文本、按下键盘上的某个按键、移动鼠标等等。

一般情况下事件的名称都是以单词on开头的,例如点击事件 onclick、页面加载事件 onload 等

1.事件绑定

事件只有与 HTML 元素绑定之后才能被触发,为 HTML 元素绑定事件处理程序的方法由很多,最简单的就是通过 HTML 事件属性来直接绑定事件处理程序,例如 onclick、onmouseover、onmouseout 等属性。

  • 以 onclick 属性为例,通过该属性我们可以为指定的 HTML 元素定义鼠标点击事件(即在该元素上单击鼠标左键时触发的事件),示例代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JavaScript</title>
</head>
<body>
    <button type="button" onclick="myBtn()">按钮</button>
    <script type="text/javascript">
        function myBtn(){
            alert("Hello World!");
        }
    </script>
</body>
</html>
  • 除了上述方法外,我们也可以直接使用 JavaScript 中提供的内置函数来为指定元素绑定事件处理程序,如下例所示:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JavaScript</title>
</head>
<body>
    <button type="button" id="myBtn">按钮</button>
    <script>
        function sayHello() {
            alert('Hello World!');
        }
        document.getElementById("myBtn").onclick = sayHello;
    </script>
</body>
</html>

  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值