我当前项目中的大多数开发人员使用(对我而言)奇怪的方法来检查ECMAScript中的空字符串:
if (theString.length == 0)
// string is empty
Run Code Online (Sandbox Code Playgroud)
我通常会这样写:
if (theString == "")
// string is empty
Run Code Online (Sandbox Code Playgroud)
后一版本对我来说似乎更具可读性和自然性.
我没有问过任何人似乎能够解释版本1的优点.我想在过去的某个时候有人告诉大家这是做到这一点的方法,但现在那个人离开了,没有人记得为什么要这样做办法.
我想知道为什么我应该在第二个版本中选择第一个版本?重要的是,一个版本比另一个版本好吗?由于某种原因,一个版本更安全还是更快?
(我们实际上是在符合ECMAScript Edition 4的Siebel eScript中执行此操作)
谢谢.
我一直在寻找关于报废ECMAScript第4版的一些信息,但没有取得多大成功,即使在SO上也是如此.我知道Mozilla的JavaScript 1.7实现了第4版中提供的许多(全部?)新功能,我想我记得有一篇好的John Resig帖子,但我现在似乎无法在他的博客上找到它.
特别是,我想知道为什么它完全取消了ECMA-262第5版以及为什么它不仅仅是改进.一些功能非常酷,如生成器,迭代器,let,新赋值运算符和(我特别喜欢的)解构赋值.
我知道所有这些特殊功能只会在具有过时ECMAScript实现的浏览器中抛出错误,但为什么不包括它们,知道有一天这些实现很少而且很远?还有其他原因吗?我们是否可能会在未来的版本中看到一些报废功能重新出现,或者供应商是否害怕破坏兼容性,我们可能永远不会看到标准的这些改进?
顺便说一句,知道一些关于这个问题的意见会很高兴,你是否对从第5版中删除某些功能感到恼火,或者你认为这样做会更好?是否值得玩ECMAScript 4的实现?
当编程语言是静态类型时,编译器可以更精确地关于内存分配,因此通常更高性能(所有其他条件相同).
我相信ES4引入了可选类型提示(根据我的理解,Adobe因为actionscript而在其规范中做出了巨大贡献).javascript是否正式支持类型提示?ES6是否支持原生变量的可选类型提示?
如果Javascript支持类型提示,是否有任何基准测试表明它在性能方面如何得到回报?我还没有看到一个开源项目使用它.
javascript variables performance ecmascript-4 ecmascript-harmony
例如,如何x-y\uxxxx\Uxxxxxxxxx从连接符标点 ( Pc ) 类别中获取代码点模式,用于扫描 ECMAScript 3/JavaScript 标识符?
我需要帮助来验证词法扫描仪的 ECMA-262(3º 版,7.6)标识符的有效字符(代码点)。
语法引用
Identifier::
IdentifierName但不是ReservedWord
IdentifierName::
IdentifierStartIdentifierNameIdentifierPartIdentifierStart::UnicodeLetter- $
- _
\# 不需要检查这个UnicodeEscapeSequence
IdentifierPart::
IdentifierStartUnicodeCombiningMarkUnicodeDigitUnicodeConnectorPunctuation
UnicodeLetter::
- Unicode 类别中的任何字符“大写字母 ( Lu )”、“小写 > 字母 ( Ll )”、“大写字母 ( Lt )”、“修饰符字母 ( Lm )”、“其他字母 ( Lo )”或“字母”数(Nl)”。
UnicodeCombiningMark::
- Unicode 类别“非间距标记 ( Mn )”或“组合间距标记 ( Mc )”中的任何字符
UnicodeDigit::
- Unicode 类别“十进制数 ( …
ecmascript-4 ×4
javascript ×4
ecma262 ×1
ecmascript-3 ×1
performance ×1
unicode ×1
variables ×1