Javascript 数字和字符串全局对象的用途?
我可以通过以下操作创建一个数字Javascript 数字和字符串全局对象的用途?,javascript,Javascript,我可以通过以下操作创建一个数字 var n1 = 1; 或 和字符串一样 var s1 = 'string1'; 或 在什么情况下,您希望使用全局对象而不是更简单的方法 JavaScript全局对象字符串和数字在编程时有用吗 同样适用于 Regexp, Boolean, Function 这些函数是否有任何用途,可以使用适当的语法进行实例化?当Number()作为函数调用时,它会对作为参数传递的值执行类型转换。String()也是如此字符串(10)将数字10转换为字符串'10' var n
var n1 = 1;
或
和字符串一样
var s1 = 'string1';
或
在什么情况下,您希望使用全局对象而不是更简单的方法
JavaScript全局对象字符串和数字在编程时有用吗
同样适用于
Regexp, Boolean, Function
这些函数是否有任何用途,可以使用适当的语法进行实例化?当Number()
作为函数调用时,它会对作为参数传递的值执行类型转换。String()
也是如此<代码>字符串(10)将数字10
转换为字符串'10'
var n1 = 1;
// => 1
var n2 = 's';
// => 's'
但是:
当Number()
作为函数调用时,它会对作为参数传递的值执行类型转换。String()
也是如此<代码>字符串(10)将数字10
转换为字符串'10'
var n1 = 1;
// => 1
var n2 = 's';
// => 's'
但是:
发件人:
数字对象的主要用途是:
如果参数无法转换为数字,则返回NaN
在非构造函数上下文中(即,没有新运算符),Number
可用于执行类型转换
更一般地说(我邀请您阅读MDN中其他包装类的文档),这些类用于执行类型转换或断言。来自:
数字对象的主要用途是:
如果参数无法转换为数字,则返回NaN
在非构造函数上下文中(即,没有新运算符),Number
可用于执行类型转换
更一般地说(我邀请您阅读MDN中其他包装类的文档),这些类用于执行类型转换或断言。有了它们,我们就可以扩展它们。例如,如果浏览器没有实现它,您可以自己添加
Array.isArray
方法
Array.isArray = function( arr ) {
return Object.prototype.toString.apply( arr ) === '[object Array]';
};
这对于大多数多边形填充来说都很好
另一个很好的例子是字符串上的方法
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,'');
};
否则,就没有其他用途了。转换为数字最好使用+
,转换为字符串最好使用'+
,等等
我唯一经常使用的是Regexp
,因为这样做很方便newregexp
(用于保存变量,因为需要较少的转义,或者因为它允许将regex拆分为多行)
编辑:我刚想到另一个用途:
arr.filter( Boolean ); // Removes falsy values from the array "arr"
arr.map( Number ); // Converts every element of the array to a Number
有了它们,我们就可以扩展它们。例如,如果浏览器没有实现它,您可以自己添加
Array.isArray
方法
Array.isArray = function( arr ) {
return Object.prototype.toString.apply( arr ) === '[object Array]';
};
这对于大多数多边形填充来说都很好
另一个很好的例子是字符串上的方法
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,'');
};
否则,就没有其他用途了。转换为数字最好使用+
,转换为字符串最好使用'+
,等等
我唯一经常使用的是Regexp
,因为这样做很方便newregexp
(用于保存变量,因为需要较少的转义,或者因为它允许将regex拆分为多行)
编辑:我刚想到另一个用途:
arr.filter( Boolean ); // Removes falsy values from the array "arr"
arr.map( Number ); // Converts every element of the array to a Number
还有第三个:
var s1 = new String('string1');
缩写var s1='string'
实际上是上面这行的缩写。他们几乎一样
你说的另一句话
var s1 = String('string1');
,实际上是一个类型转换。您正在将字符串转换为字符串,这是毫无意义的。但你也可以写:
var s1 = String(10);
,在这种情况下,您将数字10键入一个字符串,这显然与字符串到字符串的类型转换不同。还有第三个:
var s1 = new String('string1');
缩写var s1='string'
实际上是上面这行的缩写。他们几乎一样
你说的另一句话
var s1 = String('string1');
,实际上是一个类型转换。您正在将字符串转换为字符串,这是毫无意义的。但你也可以写:
var s1 = String(10);
,在这种情况下,您将数字10键入一个字符串,这显然与字符串到字符串的类型转换不同。在原语上使用对象有好几次和几处好处 1) 对象可以有方法。像
“hello world”这样简单的东西。length
会将原始字符串“autobox”到对象,这样就可以使用length属性
2) 使用
字符串
和数字
构造函数是转换为字符串/数字的一种方法,尽管通常有更好的方法。在原语上使用对象有好几种方法
1) 对象可以有方法。像“hello world”这样简单的东西。length
会将原始字符串“autobox”到对象,这样就可以使用length属性
2) 使用
字符串
和数字
构造函数是转换为字符串/数字的一种方法,尽管通常有更好的方法。关于数字,已经给出了一些答案。这使得很难回答整个问题,所以我将添加此作为一个评论。也就是说,对于Regexp,使用global而不是/../可能会使用变量构建regex更容易。@GeorgeJempty回答得很好。可惜这不是一个答案有关new Regep(x)
的示例,请参阅。如果你有一个字符串,你就想用它,我用它来把它分成几行。如果它是一个文本regexp,它将是不可读的。到目前为止,已经提供了一些关于数字的答案。这使得很难回答整个问题,所以我将添加此作为一个评论。也就是说,对于Regexp,使用global而不是/../可能会使用变量构建regex更容易。@GeorgeJempty回答得很好。可惜这不是一个答案例如