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回答得很好。可惜这不是一个答案例如