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

网站建设产品需求文档北海网站制作公司

网站建设产品需求文档,北海网站制作公司,中小企业网络工程建设,淘特app推广代理字符串的扩展 关键的扩展点及其示例: Unicode 表示与处理 JavaScript 共有6种方法可以表示一个字符。codePointAtpos:String.fromCodePoint…codePoints: **字符串的遍历 for … of **字符串方法的增强 includessearchString[, position]&…
  • 字符串的扩展
    • 关键的扩展点及其示例:
      • Unicode 表示与处理
        • JavaScript 共有6种方法可以表示一个字符。
        • codePointAtpos:
        • String.fromCodePoint…codePoints:
      • **字符串的遍历 for … of **
      • 字符串方法的增强
        • includessearchString[, position]:
        • startsWithsearchString[, position]:
        • endsWithsearchString[, length]:
        • 第二个参数
      • 字符串的重复
        • repeatcount:
      • 字符串的补全
        • padStarttargetLength[, padString] 和 padEndtargetLength[, padString]:
      • 模板字符串(Template Literals)
        • 过滤 HTML 字符串,防止用户输入恶意内容
        • 多语言转换(国际化处理)

1. 字符串的扩展

ES6 加强了对 Unicode 的支持,并且扩展了字符串对象。

ES6(ECMAScript 2015)对字符串类型进行了显著的扩展,引入了许多新的方法和特性,提高了处理字符串的便利性和效率。

1.1. 关键的扩展点及其示例:

1.1.1. Unicode 表示与处理

ES5中,这种表示法只限于码点在 \u0000 ~ \uFFFF 之间的字符。超出这个范围的字符,必须用两个双字节的形式表示。

"\uD842\uDFB7"
// ""
"\u20BB7"
// " 7"

上面代码表示,如果直接在 \u 后面跟上超过 0xFFFF 的数值(比如\u20BB7 ),JavaScript会理解成 \u20BB+7 。由于 \u20BB 是一个不可打印字符,所以只会显示一个空格,后面跟着一个 7 。

ES6 对这一点做出了改进,只要将码点放入大括号,就能正确解读该字符。

"\u{20BB7}"
// """\u{41}\u{42}\u{43}"
// "ABC"let hello = 123;
hell\u{6F} // 123'\u{1F680}' === '\uD83D\uDE80'
// true

上面代码中,最后一个例子表明,大括号表示法与四字节的 UTF-16 编
码是等价的。

1.1.1.1. JavaScript 共有6种方法可以表示一个字符。
'\z' === 'z' // true
'\172' === 'z' // true
'\x7A' === 'z' // true
'\u007A' === 'z' // true
'\u{7A}' === 'z' // true
1.1.1.2. codePointAt(pos)

返回字符串中指定位置的 Unicode 码点。

let str = "𠮷";
console.log(str.codePointAt(0)); // 正确输出大于0xFFFF的码点
1.1.1.3. String.fromCodePoint(...codePoints)

从一系列 Unicode 码点创建字符串。

console.log(String.fromCodePoint(0x20BB7)); // 输出: "𠮷"
1.1.2. **字符串的遍历 for … of **

引入了迭代器接口,可以直接用for…of循环遍历字符串中的每个字符(包括 surrogate pairs)。

let str = "hello";
for (let char of str) {console.log(char);
}
1.1.3. 字符串方法的增强
1.1.3.1. includes(searchString[, position])

判断字符串是否包含某个子串,返回布尔值。

let str = "Hello world";
console.log(str.includes("world")); // 输出: true
1.1.3.2. startsWith(searchString[, position])

判断字符串是否以指定的子串开始,返回布尔值。

console.log(str.startsWith("Hello")); // 输出: true
1.1.3.3. endsWith(searchString[, length])

判断字符串是否以指定的子串结束,返回布尔值。

console.log(str.endsWith("world")); // 输出: true
1.1.3.4. 第二个参数

这三个方法都支持第二个参数,表示开始搜索的位置。

let s = 'Hello world!';s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false

上面代码表示,使用第二个参数 n 时, endsWith 的行为与其他两个方法有所不同。它针对前 n 个字符,而其他两个方法针对从第 n 个位置直到字符串结束。

1.1.4. 字符串的重复
1.1.4.1. repeat(count)

返回一个新的字符串,将原字符串重复指定次数。

let str = "abc";
console.log(str.repeat(3)); // 输出: "abcabcabc"
1.1.5. 字符串的补全
1.1.5.1. padStart(targetLength[, padString])padEnd(targetLength[, padString])

在字符串的开头或结尾补全指定的字符,直到达到指定长度。

ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。 padStart() 用于头部补全, padEnd() 用于尾部补全。

padStart 和 padEnd 一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。

console.log("foo".padStart(5, '0')); // 输出: "00foo"
console.log("foo".padEnd(5, '0')); // 输出: "foo00"
1.1.6. 模板字符串(Template Literals)

使用反引号(`)定义,允许直接嵌入变量和表达式,以及多行字符串。

let name = "Alice";
let greeting = `Hello, ${name}!`;
console.log(greeting); // 输出: Hello, Alice!
1.1.6.1. 过滤 HTML 字符串,防止用户输入恶意内容
let message =
SaferHTML`<p>${sender} has sent you a message.</p>`;
function SaferHTML(templateData) {let s = templateData[0];for (let i = 1; i < arguments.length; i++) {let arg = String(arguments[i]);// Escape special characters in the substitution.s += arg.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");// Don't escape special characters in the template.s += templateData[i];}return s;
}

上面代码中, sender 变量往往是用户提供的,经过 SaferHTML 函数处理,里面的特殊字符都会被转义。

let sender = '<script>alert("abc")</script>'; // 恶意代码
let message = SaferHTML`<p>${sender} has sent you a message.</p>`;message
// <p>&lt;script&gt;alert("abc")&lt;/script&gt; has sent
you a message.</p>
1.1.6.2. 多语言转换(国际化处理)
i18n`Welcome to ${siteName}, you are visitor number
${visitorNumber}!`
// "欢迎访问xxx,您是第xxxx位访问者!"

模板字符串本身并不能取代Mustache之类的模板库,因为没有条件判断和循环处理功能.

这些扩展极大地丰富了JavaScript处理字符串的能力,使得字符串操作更加灵活和强大。

http://www.yayakq.cn/news/267276/

相关文章:

  • 有哪些做婚礼平面设计的网站有哪些国内建筑公司排名
  • 嘉兴手机建站模板域名备案费用
  • 男人互做网站自助建站系统开发
  • 做个企业网站大概多少费用买国外空间哪个网站好
  • 云和网站建设网站开发的流行架构
  • 网站长期外包html网页开发工具
  • 网络优化工程师简历台州企业网站seo
  • 个人网站做百度竞价哈尔滨市建筑企业管理站
  • 镇江网站建设教程网站系统说明
  • 哪个网站的地图可以做分析图网站建设公司工作流程
  • 初级网站建设电子商务网站的建设包含哪些流程图
  • dedecms企业网站电商网站设计与制作论文
  • 免费涨1000粉丝网站2021最新网页游戏开服表
  • 勉费申请做网站微信运营简历
  • 大连优化网站用阿里云服务器做自己购物网站
  • 购物商场网站开发过程详细说明wordpress分类缩略图
  • 建材网站都有哪些可以做app的网站
  • 石家庄网站优化公司商城网站模板html
  • 网站审批苏州吴江建设局招投标网站
  • 南沙区网站建设宜兴做网站的公司
  • 网站建设 预算买一款app要多少钱
  • 苏州企业网站建设服务好wordpress 腾讯课堂
  • 深圳网站建设 卓越迈源码可以做网站吗
  • iis怎么查看网站的域名网站优化的公司
  • tk后缀网站是什么网站南京网站建设开发公司
  • 教育网站建站做趣味图形的网站
  • 网站技术解决方案征求网站建设意见的通知
  • 广东十大网站建设品牌公司管理系统网站模板下载
  • 贵州住房和城乡建设厅网站运营网站挣钱方法
  • 站长之家权重wordpress自定义文章类型模板