是否可能,字符串长度是非自然数?

时间:2016-10-10 11:14:13

标签: javascript

字符串长度是否可能是非自然数?

例如:

var smth = 'xxxx';

是否存在smth.length > 3为真,但smth.length >= 4没有?

的情况

3 个答案:

答案 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位代码单元的数量。

从这里你只需测量数组的长度。