前言:
OWASP TOP10的第三位是XSS(跨站脚本攻击)
只有充分认识JS,才可能理解XSS
本文将回顾JS的基础部分
0x00 概述
Javascript(JS):一种轻量级直译式脚本语言
- 特点:解释型、基于对象、动态(事件驱动)、跨平台、弱类型、基于原型
- 其他特性:
严格区分大小写
执行环境为浏览器或Node.js
每个语句最后最好加上结束符;
注释与Java一致,单行//,多行/**/
以<script></script>内嵌于HTML中。可直接写在其中,或通过src属性引用独立的.js文件 - 对JS的个人理解:客户端与用户在本地的交互和行为,常用于为HTML网页增加动态功能
0x01 变量
- 命名:
字母开头,剩下可$或_或字母;无法用保留字 - 数据类型:变量保存的数据的类型(个人理解是变量指向内存单元的地址,值为地址中的数据)
1.字符型(string)用
" "或'';
2.数字型(number)可整数可分数,可用带e的科学计数法
3.空值(null)空值不是0,0不是空值。属于对象类型
4.无值(undefined)默认不赋值的变量为,其由null派生,故用==可判断二者相等,但用===即绝对等于时,二者不相等。
4.布尔型(boolean)
5.数组(Array)在[ ]内以,分隔每个数组内的元素。属于对象类型
6.对象(object)在{ }内以键值对存在,以,分隔每个键值对。除上述外,还包含Date,Math,Regexp等
区分方法:typeof语句
可见object是一个大的类型,包含很多具体类型
- 声明:
var 变量名=变量值;可结合,将多个变量一句话声明
0x02 输入输出
常用的输出:document.write()表示 printalert()表示弹窗
在HTML的body标记中还可用按钮交互:<button type="button" onclick="alert('显示内容')">按钮的文字</button>这是最经典的交互之一
0x03 常见事件
通过文档对象模型(Document Object Model,DOM)。JavaScript 获得了足够的能力来创建动态的 HTML
- 鼠标单击:直接用事件属性
<button type="button" onclick="alert('显示内容')">按钮的文字</button>或使用 HTML DOM 来分配事件<script>document.getElementById("myBtn").onclick=function(){displayDate()};</script> - 此外还有鼠标双击;鼠标悬停;鼠标移开;内容改变;获取焦点;失去焦点;页面加载;页面关闭等
0x04 判断
经典的判断:if .. 或 if ...else... 或 if ... else if ... else ...
0x05 循环
经典的 for 循环和 while 循环,只不过变量都是 var
来源:CSDN
作者:qbzzzz95
链接:https://blog.csdn.net/qq_34995811/article/details/104286110