for문 안에서 str의 길이가 바뀐다면 str.length로 사용해야겠지만, 그렇지 않다면 var slen = str.length를 사용하는게 일반적으로 조금 더 좋은 선택일겁니다.
str.length의 시간 복잡도는 관련 문서를 봐야 알겠지만, O(1)은 아닐 거라 가정을 하겠습니다.
그러면 시간복잡도가 O(n)인 for문을 하나만 썼더라도, 실제로는 이중 반복문인 것과 같은 시간 복잡도(.length의 시간 복잡도에 따라 O(nlogn),O(n^2) 등)을 갖게 될겁니다.
RE: 알고리즘 이야기