相关疑难解决方法(0)

无法访问对象属性,即使它存在.返回undefined

这令我困惑.我不知道怎么解释这个,但这是我的调试代码的样子.在它下面,您可以看到这两个日志的输出.第一个清楚地显示了我正在尝试访问的属性的完整JavaScript对象,但下一行代码我无法使用config.col_id_3访问它(请参阅屏幕截图中的"undefined"?).有谁能解释一下?我也可以访问除field_id_4之外的所有其他属性.

console.log(config);
console.log(config.col_id_3);
Run Code Online (Sandbox Code Playgroud)

这就是这些console.log()在Console中打印的内容

控制台输出

javascript console.log

298
推荐指数
12
解决办法
18万
查看次数

如何在Safari中更改console.log的默认行为?

在没有附加组件的Safari中,console.log将在最后执行状态下显示对象,而不是在console.log调用时的状态.

我必须克隆对象只是为了输出它console.log来获取该行的对象状态.

例:

var test = {a: true}
console.log(test); // {a: false}
test.a = false; 
console.log(test); // {a: false}
Run Code Online (Sandbox Code Playgroud)

javascript debugging console logging clone

144
推荐指数
4
解决办法
10万
查看次数

Chrome的JavaScript控制台是否懒于评估数组?

我将从代码开始:

var s = ["hi"];
console.log(s);
s[0] = "bye";
console.log(s);
Run Code Online (Sandbox Code Playgroud)

简单吧?对此,Firebug说:

["hi"]
["bye"]
Run Code Online (Sandbox Code Playgroud)

很棒,但Chrome的JavaScript控制台(7.0.517.41 beta)说:

["bye"]
["bye"]
Run Code Online (Sandbox Code Playgroud)

我做错了什么,或者Chrome的JavaScript控制台在评估我的阵列方面特别懒惰?

在此输入图像描述

javascript arrays console logging google-chrome

116
推荐指数
4
解决办法
2万
查看次数

对象和console.log的奇怪行为

这段代码:

foo = [{id: 1},{id: 2},{id: 3},{id: 4}, {id: 5}, ];
console.log('foo1', foo, foo.length);
foo.splice(2, 1);
console.log('foo2', foo, foo.length);
Run Code Online (Sandbox Code Playgroud)

在Chrome中生成以下输出:

foo1 
[Object, Object, Object, Object, Object]  5
    0: Object
    1: Object
    2: Object
    3: Object
    length: 4
    __proto__: Array[0]
     5 (index):23
foo2 
[Object, Object, Object, Object]  4
    0: Object
    1: Object
    2: Object
    3: Object
    length: 4
    __proto__: Array[0]
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/2kpnV/

这是为什么?

javascript google-chrome object

91
推荐指数
1
解决办法
4万
查看次数

console.log()在值实际更改之前显示变量的更改值

我理解这段代码.我们制作A的副本并将其称为C.当A被更改时,C保持不变

var A = 1;
var C = A;
console.log(C); // 1
A++;
console.log(C); // 1
Run Code Online (Sandbox Code Playgroud)

但是当A是阵列时,我们会有不同的情况.C不仅会改变,而且会在我们触及A之前发生变化

var A = [2, 1];
var C = A;
console.log(C); // [1, 2]
A.sort();
console.log(C); // [1, 2]
Run Code Online (Sandbox Code Playgroud)

有人可以解释第二个例子中发生的事情吗?

javascript variables google-chrome

43
推荐指数
4
解决办法
3万
查看次数

Vue.js refs 未定义,即使 this.$refs 显示在那里

我有一个组件的引用

 <Gmap ref="mapRef">
Run Code Online (Sandbox Code Playgroud)

在安装中,我正在这样做,只是为了查看对象可用

 mounted(){
   let self = this
   console.log(self.$refs) // Shows the mapRef object reference
   console.log(self.$refs.mapRef) // returns undefined ???
 }
Run Code Online (Sandbox Code Playgroud)

self.$refs 显示...

  mapRef: VueComponent {_uid: 207, _isVue: true, $options: {…}, _renderProxy: Proxy, _self: VueComponent, …}
Run Code Online (Sandbox Code Playgroud)

那么为什么 self.$refs.mapRef 返回 undefined 呢??即使它明显在那里??

javascript vue.js

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

如何迭代弱图?

javascript WeakMap(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap)不允许您按设计获取密钥或长度或大小.

是否有可能以某种方式循环条目?

如果没有.. Chrome控制台如何执行此操作?

在此输入图像描述

javascript garbage-collection iterator weakmap

16
推荐指数
2
解决办法
5840
查看次数

element.children的console.log显示0长度,但稍后扩展时有三个条目

在我的javascript中,我有两个元素.

我记录了两个元素,它显示了......

要素1.

在此输入图像描述

要素2.

在此输入图像描述

有问题.

当我console.logelement小号.children他们显然还有些HtmlCollection小号

您将在一分钟内理解以下内容:但奇怪的是,一个HtmlCollection为空(并且长度为0),但有3个元素(并且长度为3).

如果您console.log为元素的孩子阅读下面的s,您将理解我在说什么...

元素1儿童和长度:

在此输入图像描述

元素2儿童和长度:(搞砸了)

在此输入图像描述

有谁知道这里发生了什么?

我如何解决这个问题,我需要通过HtmlCollection循环,但它不会让我因为长度是0 ...?

提前致谢!所有帮助赞赏.

html javascript htmlcollection

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

我需要来自命名节点映射的值

我正在通过一个html结构来获得我需要的值.它似乎是一个"NamedNodeMap",我已经得到了这个调用:

ui.handle.attributes.getNamedItem("data-value")
Run Code Online (Sandbox Code Playgroud)

在chromes控制台中打印时显示:

data-value="12:00 AM"
    ->"12:00 AM"
Run Code Online (Sandbox Code Playgroud)

我需要将"12:00 AM"作为值,字符串,任何东西都能正常工作.我只是不知道如何得到它.我的通话结束时.value不起作用,我也试过.text和许多其他的东西.

在扩展句柄和属性之前,继承了ui对象的样子:

在此输入图像描述

之后:

HTML标记

html标记:

在此输入图像描述

javascript xml jquery

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

如果控制台已关闭,则类似数组的对象和数组不会像数组一样记录

看到这个jsbin在哪里,为了回答另一个问题,我构建了一个类似数组的对象:

function myCollection() {
  var items = [], r = {}
  function myPush(value){
      value += 'bar'
      r[items.length]=value;
      items.push(value)    
  }
  Object.defineProperty(r, "splice", {value:[].splice});
  Object.defineProperty(r, "slice", {value:[].slice});
  Object.defineProperty(r, "length", {
    get : function(){ return items.length}
  });
  Object.defineProperty(r, "myPush", {value:myPush});
  return r;
}

var fooCollection = myCollection();
fooCollection.myPush('foo');
console.log(fooCollection); // logs ["foobar"] 
fooCollection.myPush('Ba');
console.log(fooCollection); // logs ["foobar", "Babar"] 

fooCollection.myPush('wzouing');
console.log(fooCollection.slice(-2)); //logs ["Babar", "wzouingbar"] 
console.log(fooCollection[1]); // logs Babar 
Run Code Online (Sandbox Code Playgroud)

如果你在控制台打开的情况下点击Chromium上的Run with JS按钮,你会得到:

在此输入图像描述

非常奇怪的是,如果你在控制台关闭时按下按钮就可以得到这个(当然你在重新打开控制台后看到它):

在此输入图像描述

这是一个已知的错误吗?一项功能 ?灰色地带?有解决方法吗?

*注意:有时候,在Chrome/linux(而不是Chromium)上,我得到的东西更奇怪:关闭并重新打开控制台时,现有日志会发生变化.它们可以从阵列形式转变为折叠形式.*

javascript google-chrome

8
推荐指数
1
解决办法
400
查看次数