mermaid代码在发布文章且文章加载完以后,苹果macbook或者macstudio等设备上均无法显示mermaid代码生成的图片(编辑预览又是正常的)
一、贵公司给了个测试链接,https://blog.csdn.net/m0_46636474/article/details/145510490 这个链接,我在苹果电脑上MacbookPro(Intel芯片)和苹果电脑MacStudio(M1Max芯片),在苹果电脑的Chrome浏览器上,编辑预览的时候都正常显示图片,但是发布以后,等页面加载完以后,就无法显示图片,同样的代码有道云笔记,简书等等其他平台在苹果电脑的chrome浏览器均正常,请用mac设备核查这个问题。
二、上述网页代码:主要是这段(把//去掉,加//是防止自动转成炸弹图):
flowchart LR
Array --> 元素1["85 [索引0]"]
Array --> 元素2["92 [索引1]"]
Array --> 元素3["78 [索引2]"]
Array --> 方法["push/filter/map"]
文章全代码:#### 一、Object:万物皆对象的“盒子” Object是JavaScript中最基础的数据容器,像动态存储的抽屉,可随时添加/删除属性,支持键值对存储 [^1]。
示例:创建用户信息对象
// 方式1:字面量直接声明
const user = {
name: '小明',
age: 20,
getInfo: function() {
return `${this.name}今年${this.age}岁`;
}
};
console.log(user.getInfo()); // "小明今年20岁"
// 方式2:构造函数new Object()
const car = new Object();
car.brand = 'Toyota';
car.drive = () => console.log('行驶中...');
car.drive(); // "行驶中..."
[^1]: 参考资料3说明对象通过动态属性管理数据
二、Array:有序的“列表清单”
数组是按顺序排列的集合,每个元素有索引(从0开始),支持动态增删改查 [^2]。
示例:操作学生分数数组
// 创建数组(两种方式)
const scores1 = [85, 92, 78]; // 字面量快捷方式
const scores2 = new Array(70, 88); // 构造函数
// 常用方法
scores1.push(95); // 末尾添加 → [85, 92, 78, 95]
scores1.pop(); // 删除末尾 → [85, 92, 78]
const highScores = scores1.filter(score => score > 90); // 过滤 → [92]
const str = scores1.join("、"); // 转字符串 → "85、92、78"
// 用map生成新数组
const comments = scores1.map(score =>
score >= 80 ? "优秀" : "待提高"
); // ["优秀", "优秀", "待提高"]
[^2]: 参考资料6详细列出了数组的push/filter/map等方法
flowchart LR
Array --> 元素1["85 [索引0]"]
Array --> 元素2["92 [索引1]"]
Array --> 元素3["78 [索引2]"]
Array --> 方法["push/filter/map"]
三、Date:时间管理的“日历”
Date对象用于处理日期和时间的计算,能精确到毫秒 [^3]。
示例:记录事件时间
// 创建当前时间
const now = new Date();
console.log(now); // 输出类似:Thu Dec 07 2023 14:30:00 GMT+0800
// 指定日期(注意月份从0开始)
const birthday = new Date(2000, 0, 1); // 2000年1月1日
console.log(birthday.getFullYear()); // 2000
// 计算时间差(毫秒为单位)
const diff = now - birthday;
const years = Math.floor(diff / (1000*60*60*24*365));
console.log(`年龄:${years}岁`);
[^3]: 参考资料1和2重点描述了Date类型的方法(如getFullYear())
四、RegExp:文字侦探“正则表达式”
RegExp用模式匹配规则来查找或验证字符串,类似通配符的增强版 [^4]。
示例:验证邮箱格式
// 创建正则表达式(两种方式)
const emailPattern1 = /^[a-zA-Z0-9_]+@[a-z]+\.[a-z]+$/; // 字面量
const emailPattern2 = new RegExp('^\\w+@[a-z]+\\.[a-z]+{msg}#39;); // 构造函数
// 测试字符串是否符合规则
console.log(emailPattern1.test('user@example.com')); // true
console.log(emailPattern1.test('invalid.email')); // false
// 提取字符串中的数字
const text = "订单号:7890,金额:¥560";
const numbers = text.match(/\d+/g);
console.log(numbers); // ["7890", "560"]
[^4]: 参考资料1和2提到RegExp的test方法和实例属性
现在的程序员应该八成都是苹果电脑,而且大部分苹果电脑用户使用chrome浏览器,我这边两台苹果设备都这样了,在同样的网络环境和同样的设备下,同样的md代码下,其他平台均正常展示,只有csdn这样的问题,现在只能传截图-传图的方式