跳到主要内容

HTML,CSS,JS基础

在Web逆向中,HTML和CSS对逆向调试的作用很小,更重要的重点要放在JS中。

HTML

几分钟认识一下标签即可,这些标签的意义只有一个,就是把文字分成一个个的小格。

<h1>这是一个标题</h1>
<h2>这是一个标题</h2>
<h3>这是一个标题</h3>

div标签,span标签,只是字母不一样,语义不一样,但是对于Web逆向来说,没有意义。

CSS

主要是特效,为页面增加很多特效,认识以下即可。

div{
background-color: red;
}
信息

感兴趣的话,可以去看看 网上的CSS特效,https://www.runoob.com/css/css-tutorial.html

JS

JS是一切逆向的基础。

不要觉得JS有好多好多内容,其实只需要抓住一个核心即可。

JS的核心是函数,函数可以调用函数,函数可以返回函数,函数可以作为参数传递给函数,函数可以作为返回值。

JavaScript是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。 js是面向对象的开发。 面向对象的三大特征:封装、继承、多态。 制定JS标准的国际组织是ECMA,所以说Javascript也被称为ECMAScript,简称ES5。

提示

上面都是一个理论,听不懂没关系。举几个简单的例子就学会了。

JS的使用

在页面中使用script标签,在标签内部编写js代码。js在页面中编写时,建议写在页面最下边,优先保证html和css的加载。

<script>
//js代码
</script>

单独的创建js后缀的文件,使用script src进行外部引入

<script src="相对路径"></script>

JS语法

单行注释

//js代码

多行注释

/*
代码1
代码2
*/

代码输出/打印

提示

重点

alert()                 //弹窗
consloe.log() //控制台输出信息
document.write() //页面输出

JS变量声明

  1. 可以变化的量,被称之为变量
  2. 变量的声明需要使用关键字var来进行声明
  3. 官方要求,js代码编写一行结束,必须添加分号。
var 变量名;
var 变量名 = 值;

变量命名的规则

JS数据类型

基本数据类型

String 字符串 Null 空 Boolean 布尔型 undefined 未定义 Number 数字类型 Number又可细分为Int整型和float浮点型。

引用数据类型(统称为对象)

Array 数组 Object 对象 Function 函数 RegExp 正则表达式

JS类型转换

转化为字符串

toString()
String(value)
value+''

转化为Number

Number(value)

对数值取整

parseInt(value)     //不存在四舍五入

对数值取小数

parseFloat(value)

转化为布尔值

Boolean(value)

JS运算符

  • 加法
  • 减法
  • 乘法 / 除法 % 取模(余)

关系运算符

>   
<
>=
<=
!= 比较值是否不相等
=== 比较值和数据类型是否相等
== 比较值是否相等
!== 比较值和数据类型是否都相等

逻辑运算符

||  或
&& 与
! 非(取反)

三目运算符(等价于if else逻辑判断语句)

条件?满足条件执行的代码:不满足条件执行的代码

赋值运算符

基本赋值运算符 =

复合赋值运算符 +=
-=
*=
/=
%=

自加/自减

○ 自加    ++      a++(先赋值后运算)     ++a(先运算后赋值)
○ 自减 -- a--(先赋值后运算) --a(先运算后赋值)

JS语句

if 注意:if可以单独使用;else if else不能单独使用,使用的时候,前边必须有if;if else if必须添加条件,else不能添加条件。

if(条件1){

}else if(条件2){

}else if(条件3){

}else{

}

switch语句

用于多次判断的语句 注意:switch case语句,每一个case后边必须添加break,并且最后要写上default。 break和continue语句的区别: ○ break语句可以立即退出循环; ○ continue语句只是退出当前循环,根据控制表达式继续进行下一次的循环。

switch(表达式){
case 常量1:语句1,
break;
case 常量2:语句2,
break;
......
default:语句n
}

for循环 一般针对数组进行循环遍历,不能遍历对象

for(语句1;语句2;语句3){
//要执行的代码块
}

for in循环

只针对对象进行循环遍历,也可遍历数组(不常用)

for(var 变量 in 对象){
console.log(变量) //对象的属性名
console.log(对象[变量])
}

while循环 进行测试循环的语句

while(条件){
//执行的代码块
}

do while 先进性循环,后执行条件 换句话,在表达式执行之前,循环之内的代码至少会被执行一次

do{
//要执行的代码
}while(条件)

JS函数

  1. 在js中,可能会编写很多的相同或者是功能相近的代码,这些代码可以多次重复使用。
  2. 函数:就是封装了一段可以被反复使用的代码块,通过这些代码块可以实现大量的代码重复使用。
  3. 函数对于一大段为了达到某种目的的代码进行归类,以使代码更加具有条理。

函数的声明 function关键字进行声明

function 自定义函数名(){
//要执行的代码块
}

函数表达式的形式

var 自定义函数名 = function(){
//要执行的代码块
}

函数的调用

函数名()

函数的参数

1. 形参
在声明函数的时候,小括号里边所写的就是形参(形式上的参数)
2. 实参
在调用函数的时候,小括号里面所写的就是实参(实际的参数)
3. 形参与实参不匹配
实参多于形参
只取形参个数
实参小于形参
对结果输出undefined

函数的返回值

return

return语句之后的内容不再执行。

return只有一个返回值,如果用逗号隔开多个值,只返回最后一个。

如果函数有return,则返回return后边的值;如果函数没有return,则返回结果为undefined

function 函数名(){
return 返回值
}

函数的作用域

  • 在代码中的任何地方都能访问的对象拥有全局作用域。
  • 在最外层的函数和在最外层函数外定义的变量,拥有全局作用域。
  • 所有未定义直接赋值(没有关键字var声明)的变量,自动声明为全局作用域。
  • 所有window对象的属性拥有的作用域,全局作用域。 window.alert() window.location()
  • 局部作用域:和全局作用域刚好相反,局部作用域一般只在固定的代码片段中可以访问,最常见的是函数的内部。
  • 每个函数都有各自独立的作用域,他们之间互不影响。

JS内置对象和方法

Math数学计算方法合集

比如来一个随机数,Math.random()

很多个,用到了可以搜索,比如,我想取平方根,那么我的搜索是在JS中,Math平方根

Date日期方法合集

日期类型使用UTC(国际协调时间)1970年1月1日零时 开始经过的毫秒数来保存日期 Date类型保存的日期能够精确到1970年1月1日以后或者以前285616年

Date对象项目很多方法,比如返回秒数,分钟等

信息

作业:写一个HTML文件,页面用h1标签显示你好,颜色是红色,同时后面加上一个当前时间的字符串,同时要求每秒都要更新一次时间。

提示

请先自行思考再看答案: 链接