相关疑难解决方法(0)

JavaScript中的'new'关键字是什么?

newJavaScript中的关键字在第一次遇到时会非常混乱,因为人们倾向于认为JavaScript不是面向对象的编程语言.

  • 它是什么?
  • 它解决了什么问题?
  • 什么时候适当,什么时候不适合?

javascript new-operator

1684
推荐指数
12
解决办法
25万
查看次数

什么是Java字符串池以及"s"与新String("s")有何不同?

String Pool是什么意思?以下声明之间有什么区别:

String s = "hello";
String s = new String("hello");
Run Code Online (Sandbox Code Playgroud)

JVM存储这两个字符串有什么区别吗?

java string

111
推荐指数
5
解决办法
6万
查看次数

JavaScript中的字符串原语和String对象有什么区别?

取自MDN

字符串文字(用双引号或单引号表示)和从非构造函数上下文中的String调用返回的字符串(即,不使用new关键字)是原始字符串.JavaScript会自动将基元转换为String对象,因此可以对原始字符串使用String对象方法.在要在原始字符串上调用方法或发生属性查找的上下文中,JavaScript将自动包装字符串原语并调用方法或执行属性查找.

因此,我认为(逻辑上)字符串基元上的操作(方法调用)应该比字符串对象上的操作慢,因为任何字符串基元method在应用于字符串之前都会转换为字符串对象(额外工作).

但在这个测试案例中,结果却相反.所述码块1的运行速度比较快的块-2代码,两个代码块在下面给出:

代码块-1:

var s = '0123456789';
for (var i = 0; i < s.length; i++) {
  s.charAt(i);
}
Run Code Online (Sandbox Code Playgroud)

代码块-2:

var s = new String('0123456789');
for (var i = 0; i < s.length; i++) {
    s.charAt(i);
}
Run Code Online (Sandbox Code Playgroud)

结果在浏览器中有所不同,但代码块-1总是更快.任何人都可以解释一下,为什么代码块-1代码块-2快.

javascript string object

106
推荐指数
7
解决办法
4万
查看次数

为什么我不能在javascript中为字符串对象添加属性?

我继承了另一个开发人员写的一些javascript代码.他不喜欢我们在整个项目中使用的网格组件,因此他决定编写自己的网格组件.他写的网格不能对日期进行排序,因为它只能绑定到字符串/数字.在使用之前,他将所有日期转换为字符串.我查看了他编写的日期函​​数的字符串格式,并认为我可以只使用原始值为字符串添加日期属性,然后在排序时查看字符串是否具有日期属性并基于此排序.但是,似乎您无法在javascript中向字符串添加属性.我不知道有些类型你不能添加属性.例如:

<html>
<script>
var test = "test";
test.test = "test inner";
console.log(test);
console.log(test.test);
</script>
Run Code Online (Sandbox Code Playgroud)

test.test将是未定义的.奇怪的.我的问题是为什么这段代码不起作用?而且,如果你能想到在该网格上排序日期的任何变通方法(除了实际绑定到日期对象而不是字符串,这将很难修复),这将是非常有用的.

javascript

61
推荐指数
2
解决办法
3万
查看次数

什么时候JavaScript字符串不是字符串?

可能重复:
为什么("foo"=== new String("foo"))在JavaScript中评估为false?

这里我发现了最好使用非类型强制字符串比较的建议,但在Chrome中,我发现了一些奇怪的东西:

var t1 = String("Hello world!");
var t2 = new String("Hello world!");
var b1 = (t1==t2); // true
var b2 = (t1===t2); // false
Run Code Online (Sandbox Code Playgroud)

这是标准行为吗?如果是这样,t1和t2各自的类型是什么?谢谢.

javascript

8
推荐指数
3
解决办法
2013
查看次数

Javascript:String vs. Object

我已经查看了stackoverflow上的所有问题和答案,但找不到简单的答案.

字符串和对象之间究竟有什么区别?

例如,如果我有这个代码:

var a = 'Tim';
var b = new String('Tim');
Run Code Online (Sandbox Code Playgroud)

究竟有什么区别?

据我所知,这new会使代码复杂化并new String减慢代码速度.

另外,我理解的a==btrue,但更严格的a===bfalse.为什么?

我似乎无法理解对象和字符串创建背后的过程.例如:

var a = new String ('Tim');
var b = new String ('Tim');
Run Code Online (Sandbox Code Playgroud)

a==bfalse

javascript string jquery object

5
推荐指数
1
解决办法
455
查看次数

标签 统计

javascript ×5

string ×3

object ×2

java ×1

jquery ×1

new-operator ×1