小编zjm*_*ler的帖子

45
推荐指数
5
解决办法
10万
查看次数

为什么流行音乐比移动快?

JavaScript中的道格拉斯·克罗克福德(Douglas Crockford)表示"转变通常比流行音乐慢得多".jsPerf 证实了这一点.有谁知道为什么会这样?从一个不成熟的角度来看,他们似乎做了几乎相同的事情.

javascript performance

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

在forEach的官方实现中,"var t = Object(this)"有什么意义?

根据MDC,ECMA-262,第5版将forEach的实施表示为:

if (!Array.prototype.forEach)
{
  Array.prototype.forEach = function(fun /*, thisp */)
  {
    "use strict";

    if (this === void 0 || this === null)
      throw new TypeError();

    var t = Object(this);
    var len = t.length >>> 0;
    if (typeof fun !== "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in t)
      fun.call(thisp, t[i], i, t);
    }
  };
}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我"var t = Object(this)"这行是做什么的?对象(这个)与普通的不同之处是什么?在这做什么工作是有区别的?

javascript

13
推荐指数
2
解决办法
1302
查看次数

为什么我不能直接将document.getElementById分配给不同的函数?

所以我试图定义一个类似于document.getElementById的函数g().以下工作正常:

var g = function(id){return document.getElementById(id)};
Run Code Online (Sandbox Code Playgroud)

但为什么这个更直接的代码不起作用呢?

var g = document.getElementById;
Run Code Online (Sandbox Code Playgroud)

javascript

11
推荐指数
1
解决办法
2321
查看次数

字符串对象?

以下是将字符串视为对象的两个原因.首先,您可以通过以下方式创建字符串:

var mystring = new String("asdf");
Run Code Online (Sandbox Code Playgroud)

我的印象是new运算符后面的构造函数必须返回一个对象.其次,字符串似乎有属性和方法.例如:

mystring.toUpperCase();
Run Code Online (Sandbox Code Playgroud)

但是,如果字符串是对象,那么我们期望像下面这样的东西起作用:

function string_constructor() {
    return "asdf";
}

var mystring = new string_constructor();
Run Code Online (Sandbox Code Playgroud)

但它没有,我被告知它不是因为字符串不是对象.字符串对象是否也是如此?无论哪种方式,我怎样才能理解我列出的所有内容?

javascript

10
推荐指数
1
解决办法
4088
查看次数

鉴于"arguments"不是一个真正的数组,为什么Array.prototype.slice.call(arguments)工作,但是Array.prototype.slice.call(someobject)不起作用?

如果参数只是一个具有length属性的对象,那么为什么它看起来与其他非数组对象的行为不同,例如Array.prototype.slice.

例如,以下代码首先警告"未定义",然后警告"foo".为什么这些不同?

(function(a){
  var myobj = {0 : "foo"};
  var myobjarray = Array.prototype.slice.call(myobj);
  var argumentsarray = Array.prototype.slice.call(arguments);
  alert(myobjarray.shift());
  alert(argumentsarray.shift());
})("foo");
Run Code Online (Sandbox Code Playgroud)

javascript arrays

9
推荐指数
1
解决办法
198
查看次数

如果document.cookie是一个字符串,为什么不将document.cookie =""删除所有相关网站的cookie?

我想知道答案可以帮助我概念化浏览器存储的cookie与通过DOM提供的document.cookie之间的关系.

javascript

9
推荐指数
2
解决办法
2598
查看次数

当myarray在一个框架中时,为什么myarray instanceof Array和myarray.constructor === Array都为false?

因此,以下代码警告错误两次:

window.onload = function(){
                    alert(window.myframe.myarray instanceof Array);
                    alert(window.myframe.myarray.constructor === Array);
                }
Run Code Online (Sandbox Code Playgroud)

名为"myframe"的页面中有一个iframe,其中包含一个名为"myarray"的数组.如果将数组移动到主页面(而不是iframe),则代码会按预期警告两次.有人知道为什么吗?

javascript

7
推荐指数
2
解决办法
5795
查看次数

为什么相对定位的身体影响绝对定位元素?

因此,使用下面的代码,当我更改条形边距时,foo的位置会发生变化.但这只发生在身体相对定位时.如果我静态定位身体,那么foo的位置不再取决于条形边缘.谁能告诉我发生了什么事?

<!DOCTYPE html>
<html>
 <head>
  <style type="text/css">
   * {
    margin:0;
   }

   body {
    position:relative;
   }

   #foo {
    position:absolute;
    top:50px;
    left:50px;
   }

   #bar {
    margin:100px;
   }
  </style>
 </head>
 <body>
  <div id="foo">asdf</div>
  <div id="bar">asdf</div>
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

html css

6
推荐指数
1
解决办法
100
查看次数

如何在不破坏浏览器后退按钮的情况下突破帧?

链接到我的网站会将我的网站保留在一个框架中,因此我在页面中添加了以下JavaScript:

if (window.top.location != window.location) {
    window.top.location = window.location
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我通过违规网站访问我的网站,我的网站成功突破了框架.但后退按钮打破了!后退按钮将用户发送到我网站的框架版本,该版本会立即再次爆发,让他回到他试图离开的地方!有没有一种简单的方法来解决这个问题?

javascript

6
推荐指数
1
解决办法
2596
查看次数

标签 统计

javascript ×9

arrays ×1

css ×1

html ×1

javascript-events ×1

performance ×1