Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        4年前关闭。
                                                                                            
                
        
我知道substr(start[, length])substring(start[, end])之间有什么区别。例如,这已解决。在先前的问题中:What is the difference between substr and substring?

但是为什么后来在substr已经存在的情况下又添加substring?我正在寻找有关此决定历史的信息。

我发现substring从一开始就存在,然后在Ecmascript 3rd Edition中“突然”出现,它们具有两个不同的功能,可以使用不同的参数来实现完全相同的事情。为什么?

最佳答案

这两个功能的用例不同。

String.prototype.substr()使您可以使用负的起始值从字符串的末尾获取子字符串,这使其适用于更多使用情况,而不会生成过于冗长,难以理解的代码。

// alert('1234567890'.substring('1234567890'.length - 4)) <-- UGLY
alert('1234567890'.substr(-4))


仅凭这一点,就可以在问题中假设这些功能实现了完全相同的事情,这简直是错误的,这与询问为什么存在任何其他功能没有什么不同。做出该决定的人只能回答这个问题。

关于javascript - 为什么在过去已经存在`substring`的情况下添加了`substr`? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56799448/

10-12 12:21
查看更多