当前位置: 首页 > wzjs >正文

网站开发体会静态网站怎么优化

网站开发体会,静态网站怎么优化,莱芜金点子最新招工,做购物商城网站目录 一、高效数据渲染 二、map() 方法详解 三、join() 方法详解 四、正则表达式基础 五、正则表达式语法 六、元字符概念 本章聚焦 JavaScript 进阶知识,先围绕高效数据渲染展开,深入解析 map() 方法在数据处理映射、join() 方法在数组转字符串拼…

目录

一、高效数据渲染

二、map() 方法详解

三、join() 方法详解

四、正则表达式基础

五、正则表达式语法

六、元字符概念


本章聚焦 JavaScript 进阶知识,先围绕高效数据渲染展开,深入解析 map() 方法在数据处理映射、join() 方法在数组转字符串拼接的妙用;随后开启正则表达式学习之旅,从基础概念入手,讲解语法规则,剖析元字符等核心构成,助力读者掌握数据处理与文本匹配的关键技能 。

一、高效数据渲染

传统方式的问题

使用 innerHTML += 反复追加元素会导致:

  1. 频繁重绘和回流(性能差)

  2. 原有事件监听失效

  3. 代码可读性低

高效渲染四步法

// 1. 获取数据(从本地存储或API)
const students = JSON.parse(localStorage.getItem('students')) || [];// 2. 使用map生成HTML字符串数组
const htmlArray = students.map(student => {return `<tr><td>${student.id}</td><td>${student.name}</td><td>${student.score}</td></tr>`;
});// 3. 使用join拼接完整HTML
const tbody = document.querySelector('tbody');
tbody.innerHTML = htmlArray.join('');// 4. 添加事件监听(使用事件委托)
tbody.addEventListener('click', function(e) {if(e.target.tagName === 'TD') {console.log('点击了学生:', e.target.parentElement.children[1].textContent);}
});

⚠️ 关键优势

  1. 性能优化:单次DOM操作代替多次操作

  2. 内存高效:减少临时字符串创建

  3. 代码简洁:逻辑清晰易维护


二、map() 方法详解

核心概念

map() 遍历数组处理数据,返回新数组(不改变原数组)

语法结构

const newArray = array.map(function(currentValue, index, arr) {// 返回处理后的元素
});
参数说明
currentValue当前元素值
index当前元素索引
arr原始数组(可选)

应用示例

// 1. 数字数组转换
const prices = [100, 200, 300];
const salePrices = prices.map(price => price * 0.8);
console.log(salePrices); // [80, 160, 240]// 2. 对象数组提取
const users = [{id: 1, name: 'John'},{id: 2, name: 'Alice'}
];
const names = users.map(user => user.name);
console.log(names); // ['John', 'Alice']// 3. 添加DOM元素
const colors = ['red', 'green', 'blue'];
const colorDivs = colors.map(color => {const div = document.createElement('div');div.className = 'color-box';div.style.backgroundColor = color;return div;
});
document.body.append(...colorDivs);

❗ 与 forEach 的区别

方法返回值是否改变原数组适用场景
map()新数组数据转换处理
forEach()undefined单纯遍历执行操作

三、join() 方法详解

核心功能

将数组所有元素连接成单个字符串

语法结构

array.join(separator);
参数说明默认值
separator元素间分隔符(可选)逗号,

应用示例

// 1. 基础拼接
const fruits = ['苹果', '香蕉', '橙子'];
console.log(fruits.join());      // "苹果,香蕉,橙子"
console.log(fruits.join('-'));   // "苹果-香蕉-橙子"
console.log(fruits.join(''));    // "苹果香蕉橙子"// 2. 渲染表格行
const rows = ['<tr><td>A01</td><td>90</td></tr>','<tr><td>A02</td><td>85</td></tr>'
];
document.querySelector('tbody').innerHTML = rows.join('');// 3. 生成CSS类名
const btnClasses = ['btn', 'btn-primary', 'btn-lg'];
const className = btnClasses.join(' ');
console.log(className); // "btn btn-primary btn-lg"

性能对比

// 低效方式(大量字符串拼接)
let html = '';
for(let i=0; i<1000; i++) {html += `<div>Item ${i}</div>`; // 每次创建新字符串
}// 高效方式(数组join)
const items = [];
for(let i=0; i<1000; i++) {items.push(`<div>Item ${i}</div>`);
}
document.body.innerHTML = items.join('');

四、正则表达式基础

什么是正则表达式?

正则表达式(Regular Expression):用于匹配字符串中字符组合的模式

三大核心应用

应用场景说明示例
表单验证验证输入格式用户名:/^[a-z0-9_]{3,16}$/
敏感词过滤替换违规内容str.replace(/敏感词/g, '***')
数据提取从文本提取特定信息提取URL中的域名

实际应用场景

  1. 手机号验证:/^1[3-9]\d{9}$/

  2. 邮箱验证:/^\w+@\w+\.\w+$/

  3. 提取HTML标签内容:/<div>(.*?)<\/div>/

  4. 过滤SQL注入关键词:/(select|insert|delete)/i


五、正则表达式语法

两种定义方式

// 1. 字面量方式(推荐)
const reg1 = /前端/;// 2. 构造函数方式
const reg2 = new RegExp('前端');

检测方法

方法返回值适用场景
test()布尔值检查是否匹配
exec()数组/null获取匹配详细信息

test() 方法

const str = 'Web前端开发是IT热门方向';
const reg = /前端/;console.log(reg.test(str)); // true// 实际应用:表单验证
const phoneReg = /^1[3-9]\d{9}$/;
const isValid = phoneReg.test('13800138000');
console.log(isValid); // true

exec() 方法

const str = 'JS前端开发,Python后端开发';
const reg = /开发/;const result = reg.exec(str);
console.log(result);
/* 输出:
['开发',         // 匹配结果index: 3,      // 匹配位置input: 'JS前端开发,Python后端开发',  // 原始字符串groups: undefined
]
*/// 循环获取所有匹配
while ((result = reg.exec(str)) !== null) {console.log(`在位置 ${result.index} 找到:${result[0]}`);
}
/* 输出:
在位置 3 找到:开发
在位置 12 找到:开发
*/

六、元字符概念

普通字符 vs 元字符

类型说明示例
普通字符匹配自身a 匹配 "a"
元字符有特殊含义的字符\d 匹配数字

常用元字符速查表

元字符说明等效表达式
\d匹配数字[0-9]
\D匹配非数字[^0-9]
\w匹配字母数字下划线[a-zA-Z0-9_]
\W匹配非字母数字下划线[^\w]
\s匹配空白符(空格/制表等)[\t\r\n]
\S匹配非空白符[^\s]
.匹配除换行外的任意字符-
^匹配字符串开头-
$匹配字符串结尾-

元字符应用示例

// 1. 匹配手机号
const phoneReg = /^1[3-9]\d{9}$/;// 2. 匹配邮箱
const emailReg = /^\w+@\w+\.\w+$/;// 3. 提取日期
const dateStr = '2023-12-31';
const dateReg = /(\d{4})-(\d{2})-(\d{2})/;
const match = dateReg.exec(dateStr);
console.log(`年: ${match[1]}, 月: ${match[2]}, 日: ${match[3]}`); 
// 年: 2023, 月: 12, 日: 31// 4. 替换敏感词
const content = '这个产品真是垃圾,太差劲了!';
const filtered = content.replace(/垃圾|差劲/g, '**');
console.log(filtered); // "这个产品真是**,太**了!"

📚 学习资源

  1. MDN 正则表达式指南

  2. 正则表达式在线测试工具

  3. 正则可视化工具


✅ 核心要点总结

📝 高频面试题速答

  1. Q:map()和forEach()的区别?

    A:map()返回新数组,forEach()不返回值

  2. Q:join()方法的参数作用?

    A:指定元素间的连接符,默认是逗号

  3. Q:正则表达式的两种定义方式?

    A:字面量 /pattern/ 和构造函数 new RegExp('pattern')

  4. Q:test()和exec()的区别?

    A:test()返回布尔值,exec()返回匹配详情数组

  5. Q:\d 和 \D 分别匹配什么?

    A:\d匹配数字,\D匹配非数字


🧠 记忆口诀

"渲染两步走,正则三元配"

  • 两步走:map处理 → join拼接

  • 三元配:匹配、提取、替换


文章转载自:

http://Uy1TaTk4.jxscp.cn
http://hPEQ9cfc.jxscp.cn
http://Xm4oGHap.jxscp.cn
http://Nz4lpAB1.jxscp.cn
http://b5F3ng5Z.jxscp.cn
http://uTvsYmxX.jxscp.cn
http://CtSKwOqr.jxscp.cn
http://CZxW0osy.jxscp.cn
http://YLh3dMOg.jxscp.cn
http://wxoREn3X.jxscp.cn
http://xz234VE0.jxscp.cn
http://ZJyXia2v.jxscp.cn
http://hGGBnZPb.jxscp.cn
http://fbowPIIW.jxscp.cn
http://rLPus67A.jxscp.cn
http://oqesfxSY.jxscp.cn
http://IFFs1vdj.jxscp.cn
http://QZFwk8g3.jxscp.cn
http://aAlOAIU3.jxscp.cn
http://qPQYZLEJ.jxscp.cn
http://bdbcwyyH.jxscp.cn
http://5MTlLx9O.jxscp.cn
http://MMZc8cx1.jxscp.cn
http://OXFwKH1n.jxscp.cn
http://SychPfdc.jxscp.cn
http://Buk4NHjF.jxscp.cn
http://Si3x72os.jxscp.cn
http://l9TYZ4hK.jxscp.cn
http://utt43yjJ.jxscp.cn
http://lRK5ITBY.jxscp.cn
http://www.dtcms.com/wzjs/610662.html

相关文章:

  • 做集团网站的宁夏做网站公司
  • 六安市网站建设哈尔滨门户网站建设
  • 商务网站建设中存在的问题中国哪家做网站的公司最大
  • 让网站不要保存密码怎么做线上运营推广是做什么的
  • 做水暖的网站猪八戒网可以做网站吗
  • 建网站 主流软件美食html网页代码模板
  • dede网站 异步生成沂水做网站
  • jsp网站开发 心得大连网站建设招聘网
  • 网站建站流程图建站素材网站模板
  • 城市门户网站模板少儿编程加盟费一般多少钱
  • 广州公司网站附近网站电脑培训班
  • 上海龙华医院的网站建设东莞seo 公司
  • 网站制作公司哪家好做网站接专线费用
  • 如何查网站域名备案wordpress 下载 主题
  • 自己在家做网站网站建设维护费摊销
  • 成都市建设局网站搭建网站教学
  • 网站建设加盟模式网站的风格设计
  • 餐饮酒店网站怎么做网站建设学什么书
  • asp做网站的步骤刷推广链接的网站
  • 服务好的专业建站公司深圳网站开发哪家专业
  • 四川省建设主管部门网站Wordpress有用么
  • 中国城乡住房和建设部网站首页网页制作与网站开发感想
  • 自己如何做购物网站深圳网站建设在哪里找
  • 网站建设和管理是教什么科目wordpress网站相册
  • 网站的站点建设分为24小时自助平台业务下单
  • 汽车维修保养网站模板wordpress安装下载
  • 专利减缓在哪个网站上做网站建设初学者教程
  • 网站页面做专题的步骤网络运营师
  • 顺企网南昌网站建设wordpress文章相关推荐
  • 兰州哪家网站做推广效果好网站开发课程心得