JS定义
JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。它以其作为开发Web页面的脚本语言而闻名,但也被广泛应用于非浏览器环境中。JavaScript是一种基于原型编程、多范式的动态脚本语言,支持面向对象、命令式、声明式和函数式编程范式。简言而知: JS -> 利用脚本,让网站动起来
基本语法
var 定义一个全局变量,如:
var a = 123;
var x = 10;
console.log(x); // 输出 10
if (true) {
var y = 20;
}
console.log(y); // 输出 20,因为 y 的作用域是全局的
let 定义一个块级变量,学过编程的都知道局部变量,这个就差不多相当于局部变量的使用。如:
let b = 123;
let x = 10;
console.log(x); // 输出 10
if (true) {
let y = 20;
console.log(y); // 输出 20
}
console.log(y); // 报错 ReferenceError: y is not defined
//这是因为y在逻辑语句里面定义的,不能在逻辑语句外面使用该变量
function
定义一个函数 ,在js里面,可以拥有0个或多个函数,定义的函数相当于功能的封装,需要使用的时候就调用它,非常方便。
定义格式为:
function 函数名称(形参){
功能语句
}
// 函数声明
function greet(name) {
return `Hello, ${name}!`;
}
console.log(greet("Alice")); // 输出 "Hello, Alice!"
// 函数提升
console.log(add(3, 4)); // 输出 7
function add(a, b) {
return a + b;
}
除了用 function
定义函数,还可以通过函数表达式定义匿名函数并赋值给变量。例如:
const greet = function(name) {
return `Hello, ${name}!`;
};
console.log(greet("Bob")); // 输出 "Hello, Bob!"
JavaScript BOM(浏览器对象模型)
BOM是一组与浏览器窗口交互的接口,它允许 JavaScript 操作浏览器的各个部分,除了网页本身的内容(DOM)。BOM 主要用于控制浏览器的窗口、历史记录、导航、客户端信息等。在后面的XSS漏洞挖掘过程,经常使用这个发现XSS漏洞,简而言之,BOM 提供了对浏览器环境的访问权限,使 JavaScript 能够与浏览器进行交互。
1. **window.open()**
作用:打开新的浏览器窗口或标签页,通常用来打开一个新的网页或执行某些任务,后面的XSS攻击通过弹窗检测是否存在XSS。
window.open(url, 新窗口的名称, 新窗口的特性);
示例:
// 打开一个新的空白窗口
window.open(