为什么charAt()和charCodeAt()被称为安全
Why charAt() and charCodeAt() are called safe?
我在这里学习了javascript字符串方法。
在提取字符串部分,它说:
有两种安全提取字符串字符的方法:
charAt(position)
charCodeAt(position)
这里的问题是:
- 为什么这些方法被称为safe
- 这些方法有哪些保护作用
有两种方法可以访问字符串中的字符。
// Bracket Notation
"Test String1"[6]
// Real Implementation
"Test String1".charAt(6)
使用括号是个坏主意,原因如下(来源):
此表示法在IE7中不起作用。第一个代码片段将返回IE7中未定义。如果你碰巧使用字符串的括号表示法all而您想要迁移对于
.charAt(pos)
来说,这是一个真正的痛苦:括号在你的代码中随处可见没有简单的方法来检测那是一根绳子或一根数组/对象。不能使用此符号设置字符因为没有警告不管怎样,这真的很令人困惑令人沮丧。如果您使用
.charAt(pos)
函数,您不会
此外,在边缘情况下,它可能会产生意想不到的结果
console.log('hello' [NaN]) // undefined
console.log('hello'.charAt(NaN)) // 'h'
console.log('hello' [true]) //undefined
console.log('hello'.charAt(true)) // 'e'
基本上,它是一种快捷的表示法,并不是在所有浏览器中都能完全实现。
请注意,您不能使用任何一种方法编写字符。然而,.charAt()
函数更容易理解该功能,在大多数语言中,它是只读函数。
因此,出于兼容性的目的,.charAt
被认为是安全的。
源
速度测试:http://jsperf.com/string-charat-vs-bracket-notation
Testing in Chrome 47.0.2526.80 on Mac OS X 10.10.4
Test Ops/sec
String charAt
testCharAt("cat", 1);
117,553,733
±1.25%
fastest
String bracket notation
testBracketNotation("cat", 1);
118,251,955
±1.56%
fastest
相关文章:
- 指令从来没有被称为angularjs
- 为什么它被称为XMLHttpRequest
- 在Q承诺中,为什么fcall被称为即时电视
- 如何检测 javascript 文件是否被 IE11 安全设置阻止
- 为什么ng-click被称为按钮被点击的次数
- 根据DOM,HTML元素的开始和结束标记之间的内容被称为属性.这个房产的名字是什么
- 如何通过AJAX.BeginForm'onsuccess被称为
- 为什么javascript对象原型被称为“fn”
- 当任何列被称为“树映射”时,是否可以创建树映射;值”;
- 茉莉花单元测试法被称为
- 原始值被称为单例的现象是什么?
- 如果回调调用封闭函数,它是否被称为递归调用
- 为什么某些函数调用在 JavaScript 中被称为“非法调用”
- MVC 上传与回发(或者它可能被称为回调)
- Javascript - 为什么“函数构造函数”被称为“函数构造函数”
- 为什么charAt()和charCodeAt()被称为安全
- 为什么Jasmine被称为“;BDD”;即使没有“测试框架”;给定/何时/然后”;支持
- 为什么AngularJS被称为不适合GUI编辑器应用程序
- 为什么JavaScript被称为客户端技术
- 当应用程序在firefox操作系统手机中从后台启动/打开时,javascript/window事件被称为什么