Errors: Deprecated String generics
Errors: Deprecated String generics
信息
Warning: String.charAt is deprecated; use String.prototype.charAt instead
Warning: String.charCodeAt is deprecated; use String.prototype.charCodeAt instead
Warning: String.concat is deprecated; use String.prototype.concat instead
Warning: String.contains is deprecated; use String.prototype.contains instead
Warning: String.endsWith is deprecated; use String.prototype.endsWith instead
Warning: String.includes is deprecated; use String.prototype.includes instead
Warning: String.indexOf is deprecated; use String.prototype.indexOf instead
Warning: String.lastIndexOf is deprecated; use String.prototype.lastIndexOf instead
Warning: String.localeCompare is deprecated; use String.prototype.localeCompare instead
Warning: String.match is deprecated; use String.prototype.match instead
Warning: String.normalize is deprecated; use String.prototype.normalize instead
Warning: String.replace is deprecated; use String.prototype.replace instead
Warning: String.search is deprecated; use String.prototype.search instead
Warning: String.slice is deprecated; use String.prototype.slice instead
Warning: String.split is deprecated; use String.prototype.split instead
Warning: String.startsWith is deprecated; use String.prototype.startsWith instead
Warning: String.substr is deprecated; use String.prototype.substr instead
Warning: String.substring is deprecated; use String.prototype.substring instead
Warning: String.toLocaleLowerCase is deprecated; use String.prototype.toLocaleLowerCase instead
Warning: String.toLocaleUpperCase is deprecated; use String.prototype.toLocaleUpperCase instead
Warning: String.toLowerCase is deprecated; use String.prototype.toLowerCase instead
Warning: String.toUpperCase is deprecated; use String.prototype.toUpperCase instead
Warning: String.trim is deprecated; use String.prototype.trim instead
Warning: String.trimLeft is deprecated; use String.prototype.trimLeft instead
Warning: String.trimRight is deprecated; use String.prototype.trimRight instead
错误类型
警告。JavaScript执行不会停止。
什么地方出了错?
非标准的泛型String
方法已被弃用,将来将被删除(不支持跨浏览器,仅在Firefox中可用)。字符串泛型String
在String
对象上提供实例方法,允许将String
方法应用于任何对象。
Firefox bug 1222552跟踪String泛型方法的删除。
例子
弃用的语法
var num = 15;
String.replace(num, /5/, '2'
标准语法
var num = 15;
String(num).replace(/5/, '2'
Shim
以下是对不支持的浏览器提供支持的一个补充:
/*globals define*/
// Assumes all supplied String instance methods already present
// (one may use shims for these if not available)
(function() {
'use strict';
var i,
// We could also build the array of methods with the following, but the
// getOwnPropertyNames() method is non-shimable:
// Object.getOwnPropertyNames(String).filter(function(methodName) {
// return typeof String[methodName] === 'function';
// }
methods = [
'contains', 'substring', 'toLowerCase', 'toUpperCase', 'charAt',
'charCodeAt', 'indexOf', 'lastIndexOf', 'startsWith', 'endsWith',
'trim', 'trimLeft', 'trimRight', 'toLocaleLowerCase', 'normalize',
'toLocaleUpperCase', 'localeCompare', 'match', 'search', 'slice',
'replace', 'split', 'substr', 'concat', 'localeCompare'
],
methodCount = methods.length,
assignStringGeneric = function(methodName) {
var method = String.prototype[methodName];
String[methodName] = function(arg1) {
return method.apply(arg1, Array.prototype.slice.call(arguments, 1)
};
};
for (i = 0; i < methodCount; i++) {
assignStringGeneric(methods[i]
}
}()