gpt4 book ai didi

javascript - 在 Javascript 源代码中,不间断空格总是像空格一样对待吗?

转载 作者:搜寻专家 更新时间:2023-11-01 05:28:21 25 4
gpt4 key购买 nike

在对一些 Javascript 文件进行代码审查时,我的代码审查工具在其中一个文件中显示“�”(缺失字符符号)。经过进一步调查,发现开发人员在他们的代码中使用了不间断空格。 (可能是从网络复制/粘贴的结果。)

令我惊讶的是,这在 Chrome、IE11 和 Edge 中运行良好。但我担心它不适用于所有浏览器。这是我可以依赖的 Javascript 语言的必需功能吗?或者这是我需要告诉开发人员修复以避免在其他浏览器上出现潜在问题的问题吗?

这是一个例子:

//NOTE: All spaces in below code are non-breaking space (0xA0), not space (0x20)
function test() {
  var mystr = 'hello';
  alert(mystr);
}

test();

最佳答案

是的,根据 ECMAScript® 2015 语言规范,不间断空格被视为空白:

White Space Code Points :

Code Point:   Name:                                   Abbreviation:
------------------------------------------------------------------
U+0009 CHARACTER TABULATION <TAB>
U+000B LINE TABULATION <VT>
U+000C FORM FEED (FF) <FF>
U+0020 SPACE <SP>
U+00A0 NO-BREAK SPACE <NBSP>
U+FEFF ZERO WIDTH NO-BREAK SPACE <ZWNBSP>
Other (Zs) Any other unicode "Separator, space" <USP>

Zs 指的是 "Separator, space" (Zs) category 中列出的代码点通过 Unicode 5.1。 ECMAScript.

具有各种空白的示例代码:

// var keyword followed by different kinds of whitespace:
var tab = " ";
varvt = "";
varff = "";
var sp = " ";
var nbsp = " ";
varzwnbsp = "";
var usp = " ";

console.log("whitespace:", tab, vt, ff, sp, nbsp, zwnbsp, usp);

... is this something I need to tell the developer to fix to avoid potential issues on other browsers?

我建议只使用空格(有些允许使用制表符),因为它可以防止不同文本编辑器造成的各种空格损坏以及上述代码示例所展示的可读性问题。

关于javascript - 在 Javascript 源代码中,不间断空格总是像空格一样对待吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44289388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com