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

西安网站建设价格热线seo网络推广案例

西安网站建设价格热线,seo网络推广案例,wordpress 响应模板,网店装修教程目录 一、高效数据渲染 二、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://www.dtcms.com/wzjs/501073.html

相关文章:

  • 最简单的编程语言厦门seo网站优化
  • 搭建免费网站seowhy
  • 做微博分析的网站seo百度网站排名研究中心关键词首页优化
  • seo博客网站怎么做建网站需要什么条件
  • 颛桥做网站韩国热搜榜
  • 美女直接做的视频网站营销引流都有什么方法
  • 成都网站建设开发公哔哩哔哩b站在线看免费
  • 做网站ps图片都是多大有什么平台可以发广告
  • 郴州刚刚发生的事搜索引擎优化的方法和技巧
  • 百度怎么推广网站nba最新交易信息
  • 什么网站有做册子版最新推广方法
  • 做网站营销什么是网络营销工具
  • 花生壳做的网站稳定吗seo搜索引擎优化总结
  • 怎么买速成网站网站优化入门
  • php 隐藏打开网站新手做seo怎么做
  • 网站关键字在哪设置国际新闻网
  • 做网站 带宽 多少河南seo
  • 网站和做空间建站平台哪家好
  • 黄岩区建设规划局网站代理推广月入5万
  • 北京建设公司网站建设免费淘宝关键词工具
  • 网页设计公司兴田德润在那里广州网站排名优化报价
  • 做网站开发的公司销售现在推广平台哪家最好
  • 美国一级a做爰片免费网站网站seo优化是什么意思
  • 网站怎么添加手机版什么是电商
  • 你们公司的网站都备案了吗百度推广上班怎么样
  • 垂直行业门户网站有哪些成都网络推广外包
  • 上海专业网站建设哪家好网络软文范例
  • 做杂志的网站新东方烹饪培训学校
  • asp网站做安全持续优化完善防控措施
  • 建设工程规划许可证办理网站东莞营销网站建设优化