字符串长度是否可能是非自然数?
例如:
var smth = 'xxxx';
是否存在smth.length > 3
为真,但smth.length >= 4
没有?
答案 0 :(得分:0)
smth.length> 3表示smth.length应至少为4,因此smth.length> = 4将始终为真
答案 1 :(得分:0)
不,这是不可能的,只要smth
是string类型。
每个字符串对象都有一个自己的length
属性,该属性始终为整数且无法更改。来自http://www.ecma-international.org/ecma-262/7.0/#sec-properties-of-string-instances-length:
长度
此String对象表示的String值中的元素数。
初始化String对象后,此属性不变。它具有{[[Writable]]:false,[[Enumerable]]:false,[[Configurable]]:false}。
答案 2 :(得分:0)
正如我在评论中所解释的那样是边缘情况,但如果您担心,那么此方法可以为您节省:
var unicodeCharacter = '';
console.log("unicodeCharacter.length:", unicodeCharacter.length);
console.log("unicodeCharacter.split().length:", unicodeCharacter.split().length);

String.split创建一个数组并将每个字符分配给该数组中的某个位置,而不管描述所述字符所需的16位代码单元的数量。
从这里你只需测量数组的长度。