JavaScript学习知识点大全(终)

简介: 教程来源 https://app-abdss1rim1oh.appmiaoda.com 系统讲解JS安全实践(XSS/CSRF防护、敏感信息保护)、调试技巧(console高级用法、断点、性能分析)、单元测试(Jest)、Babel转译及Polyfill方案,助你构建健壮、兼容、可维护的前端应用。

十三、安全最佳实践

13.1 XSS 防护

// 错误:直接插入 HTML
element.innerHTML = userInput; // 危险!

// 正确:转义 HTML
function escapeHtml(str) {
    return str
        .replace(/&/g, "&")
        .replace(/</g, "&lt;")
        .replace(/>/g, "&gt;")
        .replace(/"/g, "&quot;")
        .replace(/'/g, "&#39;");
}

element.textContent = userInput; // 自动转义

// 使用 DOMPurify 库
import DOMPurify from "dompurify";
const clean = DOMPurify.sanitize(userInput);
element.innerHTML = clean;

13.2 CSRF 防护

// 使用 CSRF Token
fetch("/api/data", {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        "X-CSRF-Token": csrfToken
    },
    credentials: "same-origin" // 携带 Cookie
});

// 设置 Cookie 属性
document.cookie = "sessionId=xxx; SameSite=Strict; Secure; HttpOnly";

13.3 敏感信息保护

// 不在前端存储敏感信息
// 错误:localStorage.setItem("password", "123456");

// 使用 HTTPS
// 避免在 URL 中传递敏感数据
// 错误:https://example.com?password=123

// 使用 Content Security Policy (CSP)
<meta http-equiv="Content-Security-Policy" content="default-src 'self'">

// 避免使用 eval()
// 错误:eval(userInput);

// 使用 JSON.parse 替代 eval
const data = JSON.parse(validatedJson);

十四、调试与测试

14.1 调试技巧

// console 方法
console.log("普通日志");
console.error("错误信息");
console.warn("警告信息");
console.info("信息");
console.debug("调试信息");

console.table([
    { name: "张三", age: 25 },
    { name: "李四", age: 30 }
]); // 表格形式

console.group("分组");
console.log("内容1");
console.log("内容2");
console.groupEnd();

console.time("计时");
// 代码块
console.timeEnd("计时"); // 输出执行时间

console.trace(); // 输出调用栈

// 断点调试
debugger; // 代码执行到这里会暂停

// 条件断点
if (condition) {
    debugger;
}

// 性能分析
console.profile("性能分析");
// 要分析的代码
console.profileEnd();

14.2 单元测试

// 使用 Jest 测试
// math.js
export function add(a, b) {
    return a + b;
}

// math.test.js
import { add } from "./math";

test("add 函数应该正确相加", () => {
    expect(add(2, 3)).toBe(5);
    expect(add(-1, 1)).toBe(0);
    expect(add(0, 0)).toBe(0);
});

// 异步测试
test("异步请求应该成功", async () => {
    const data = await fetchData();
    expect(data).toHaveProperty("id");
});

// Mock 函数
const mockFn = jest.fn();
mockFn.mockReturnValue(42);
expect(mockFn()).toBe(42);

十五、浏览器兼容性与构建工具

15.1 Babel 转译

// .babelrc 配置
{
    "presets": [
        ["@babel/preset-env", {
            "targets": "> 0.25%, not dead",
            "useBuiltIns": "usage",
            "corejs": 3
        }]
    ]
}

// 编译前(ES6+)
const arrow = () => console.log("Hello");
const promise = Promise.resolve();

// 编译后(ES5)
var arrow = function arrow() {
    return console.log("Hello");
};
var promise = Promise.resolve();

15.2 Polyfill

// 按需引入 polyfill
import "core-js/stable/array/from";
import "core-js/stable/promise";

// 使用 @babel/preset-env 自动注入
// 检查特性支持
if (!Array.prototype.includes) {
    Array.prototype.includes = function(searchElement) {
        return this.indexOf(searchElement) !== -1;
    };
}

JavaScript 的世界广阔而深邃,愿这系列文章成为你技术之路上的重要参考。持续学习,不断实践,你一定能成为优秀的 JavaScript 开发者!
来源:
https://app-abdss1rim1oh.appmiaoda.com

相关文章
|
6天前
|
算法 编译器 C语言
C语言函数知识点大全(一)
教程来源 https://www.xcfsr.cn/category/cloud.html 本文系统讲解C语言函数核心知识:从基础语法(定义、声明、调用)、参数传递(值传/指针传、数组与可变参数),到返回值处理(基本类型、指针、结构体、void),涵盖库函数、递归及模块化设计思想,助力初学者构建完整知识体系,也为进阶开发者提供实用参考。
|
16天前
|
缓存 架构师 Java
JAVA高阶知识概览(一)
教程来源 https://app-a6nw7st4g741.appmiaoda.com/ 本文系统梳理Java高阶开发核心体系:深入JVM内存模型、GC机制与类加载;剖析JMM、无锁编程与并发容器;详解分布式理论、微服务架构及高并发设计(限流、缓存、秒杀等),助力开发者跃升为技术专家。
|
13天前
|
前端开发 JavaScript
JavaScript学习知识点大全(二)
教程来源 https://app-a87ujc988w01.appmiaoda.com/ 本节系统讲解JavaScript核心数据结构与异步编程:涵盖数组(创建、遍历map/filter/reduce、增删改查及高级方法)、Set/Map集合操作与WeakSet/WeakMap弱引用特性;字符串常用方法与正则表达式(匹配、提取、替换及高级语法);以及回调、Promise、async/await异步处理与事件循环机制。
|
3天前
|
Oracle 关系型数据库 PHP
PHP知识点大全(一)
教程来源 http://unbgv.cn/category/shengxiaoyunshi.html PHP是开源服务器端脚本语言,专为Web开发设计,可嵌入HTML。语法简洁、跨平台、数据库支持强,全球超70%网站使用(如WordPress、百度)。本文系统梳理PHP基础语法、变量类型、环境搭建等核心知识,兼顾新手入门与进阶参考。
|
20天前
|
传感器 人工智能 算法
嵌入式高阶知识大全(第二卷)
教程来源 https://app-a7illrp9pngh.appmiaoda.com/ 本指南涵盖嵌入式高阶核心技术:性能调优(链接脚本定制、编译优化、ETM/PMU剖析)、功耗管理(DVFS、睡眠模式、电源门控);前沿范式(RISC-V开源生态、TinyML轻量化部署、软硬件协同与存内计算);及系统级思维、严谨性与持续学习能力——助你突破瓶颈,迈向高阶工程师。
|
算法 计算机视觉 网络架构
YOLOv7 | 模型结构与正负样本分配解析
YOLOv7 | 模型结构与正负样本分配解析
2234 0
YOLOv7 | 模型结构与正负样本分配解析
|
26天前
|
数据采集 JSON API
从踩坑到高效落地:关键词搜索京东商品列表API的实操心得
本指南聚焦京东商品列表API实操,详解jd.item_search接口调用要点:涵盖必填参数(app_key、timestamp、sign等)、关键词/分页/价格筛选配置及核心响应字段(SKU、标题、售价、销量等),助开发者快速对接,高效获取合规商品数据。(239字)
205 22
HTML单页自适应网址导航源码
HTML单页自适应网址导航源码
398 1
|
移动开发 前端开发 JavaScript
大气实用的HTML5/CSS3个人中心页面(含源码)
大气实用的HTML5/CSS3个人中心页面(含源码)
|
前端开发 算法 容器
css【详解】grid布局—— 网格布局(栅格布局)(一)
css【详解】grid布局—— 网格布局(栅格布局)(一)
2133 1

热门文章

最新文章