相关疑难解决方法(0)

查看Google Chrome控制台中所有JavaScript变量的列表

在Firebug中,DOM选项卡显示所有公共变量和对象的列表.在Chrome的控制台中,您必须键入要浏览的公共变量或对象的名称.

有没有办法 - 或者至少是命令 - Chrome的控制台显示所有公共变量和对象的列表?它会节省很多打字.

javascript google-chrome google-chrome-devtools

225
推荐指数
12
解决办法
36万
查看次数

变量的字符串插值

说我有一个变量 str

var str = "123"
Run Code Online (Sandbox Code Playgroud)

现在我可以做console.log(`Hello ${str}`),它会打印出来Hello 123

现在我有另一个变量 strnew

var strnew = 'Hello ${str}'
Run Code Online (Sandbox Code Playgroud)

注意(基于答案/评论) - strnew从文件中读取,因此它总是一个字符串,不能替换为`

我该如何console.log(...)打印Hello 123

有可能没有任何一种 eval()

javascript ecmascript-6

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

是否可以使用window.onerror获取局部变量和参数值

我有一个简单的javascript错误记录机制,它看起来像这样:

window.onerror = function (ErrorMsg, Url, LineNumber, Col, Error) {
// ajax these to the server, including Error.stack}
Run Code Online (Sandbox Code Playgroud)

问题是我还想在发生错误时获取局部变量和函数参数的值.这甚至可能吗?

我正在考虑修改Function原型,以便每次运行一个函数时,它的参数都存储在一个全局字符串数组中,然后错误处理程序只会将这个数组添加到ajax调用中.javascript可以这样做吗?

谢谢.

javascript exception

15
推荐指数
2
解决办法
754
查看次数

获取node.js或V8中闭包的所有值

例如,如果我们假设以下代码:

var f = function() { return 'hello world' };
var x = 10;
var y = 314;

var g = function() {
    var buf = [], xx = x;
    while (xx--)
        buf.append(f() + ' ');
    return buf.join('');
}
Run Code Online (Sandbox Code Playgroud)

我能得到实际的"代码"为一串gg.toString().然而,这并没有(显然)得到fx关闭的成员g(对不起,如果我没有正确使用这些术语.)

有没有办法查询函数的闭包含什么?理想情况下,我可以得到一个对象:

{ 'f' : f, 'x': x } // note that `y` is not here
Run Code Online (Sandbox Code Playgroud)

如果我必须使用C++进行与V8的特殊交互,那没关系 - 尽管在纯JavaScript中以某种方式这样做是最好的.


我知道这是一个奇怪的问题 - 但我确实有理由想要这个!

javascript v8 node.js

10
推荐指数
2
解决办法
1511
查看次数

如何以编程方式检查JavaScript范围链?

在JavaScript调试器中,我可以手动检查函数的作用域链.例如,在执行foo()这段代码时:

var x1 = "global";
var foo = (function main () {
    var x2 = "inside obj";
    return function internalFoo () {
        var x3 = "inside internalFoo";
        console.log (x1+','+x2+','+x3); // get the scopes
    };
})();
foo ();
Run Code Online (Sandbox Code Playgroud)

并在上面设置断点console.log,我看到以下范围:

Chrome调试器中显示的范围变量

有没有办法以编程方式执行此操作?
如何检查每个范围级别的定义?

javascript reflection scope

7
推荐指数
1
解决办法
618
查看次数

如何在JS中通过其名称获取局部变量?

全局var的工作示例:

var example_var = 'global var example';

var x = function(){
    var var_name = 'example_var';
    alert('Global var value is: ' + window[var_name]);
}

我如何用局部变量做同样的事情?像这样(不是工作示例):

var x = function(){
    var example_var = 'Local var example';
    var var_name = 'example_var';
    alert('Local var value is: ' + window[var_name]);
}

javascript

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

如何获取当前作用域中定义的所有变量的列表?

我希望能够获取当前范围内所有变量的列表。我知道这可能是不可能的(例如123 ),但这对于简化我当前正在开发的节点/浏览器库的解析算法确实很有帮助。

一件事:它不需要打印,也不需要“缩小”。

我希望能够通过读取 JS 库并动态地eval解析它来找出引入了哪些变量,找到两者之间状态的差异。我知道这种方法在纸面上听起来很糟糕(我很熟悉 eval 的仇恨),但是如果有更好的方法来找到它,而不仅仅是简单地解析整个库(这对于除 C/etc 之外的任何语言来说都很慢) .),我洗耳恭听。


对于你对公然使用 的抱怨eval,我知道使用闭包来保护父作用域不被修改。如果是在浏览器环境中,我还能够防止在 eval 中更改浏览器显示(暂时更改一些 DOM 构造函数)。

javascript state scope eval

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

C:获取当前范围中定义的所有变量

之前已经问过其他语言的这个问题:Python,PHPJavaScript.

我想知道是否可以在C中执行此操作.我试图在执行期间的某个时刻获取我的函数中的所有变量的快照,然后在稍后的时间点将其与另一个快照进行比较.

编辑
快照可以是范围内所有变量及其当前值的列表.我可以手工编写代码,但我想知道是否有更快的方法.

c

3
推荐指数
1
解决办法
506
查看次数

打印所有变量?

我想做一个可以在调试中使用很多的函数,用它们的值打印所有变量.它会警告:
x = 3
y = 2

该功能将是这样的:例如
:

var text='';
for(var a=0;a<allVariables;a++)
{
    text+=nameOfVariable + " = " + valueOfVariable + "/n";
}
alert(text);
Run Code Online (Sandbox Code Playgroud)

javascript

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

使用jQuery,如何获取变量值,找到与变量具有相同类名的HTML元素,并更新内容

我有一些存储在外部文件中的变量(settings.js):

var company = "Apple";
var city = "Toronto";
var weather = "Sunny";
Run Code Online (Sandbox Code Playgroud)

在我的HTML中,我引用了jQuery和settings.js,其中将存储所有变量.body标签之间的代码如下所示:

<div class="company"></div>
<div class="city"></div>
<div class="weather"></div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试制作一些智能jQuery代码,它将通过settings.js文件读取,查找变量并加载它,然后找到与变量具有相同类名的HTML元素,最后使用变量值更新该元素的内容.

执行函数后,HTML应如下所示:

<div class="company">Apple</div>
<div class="city">Toronto</div>
<div class="weather">Sunny</div>
Run Code Online (Sandbox Code Playgroud)

注意: HTML中可能有多个位置具有相同的类名.所有这些都将在FF本地运行.这是测试/演示项目,所以我不太担心性能.

的jsfiddle:

jquery

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

有什么方法可以将函数中的所有变量定义为此属性?

我知道这可能听起来有点荒谬,但我正在寻找一种方法来定义函数中的每个变量作为属性this.我正在寻找任何方法,以任何方式能够有一些方法来跟踪函数内的变量(即将它们添加到this对象),而不必实际为每个变量定义添加前缀this..有办法吗?这有可能Proxy吗?

function () {
  // declare a variable
  var hello = 'hi'
  return this
}

let {hello} = function()
console.log(hello) // hi
Run Code Online (Sandbox Code Playgroud)

例如,这有效:

function hi () { this.hello = true; return this }
hi.bind({})() // { hello: true }
Run Code Online (Sandbox Code Playgroud)

我想要的是一种方法,在定义所有变量时hi将其添加到this对象中.

javascript this

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

循环中的变量名称

我怀疑我在基本的JavaScript语法中犯了一个错误.

var my_array = new Array(10);

for (var count=0; count<my_array.length; count++) {
var my_array+count = "This is a variable number "+count+".";
document.write(my_array+count);
}
Run Code Online (Sandbox Code Playgroud)

我希望循环创建一系列变量,应该调用my_array0,my_array1,my_array2等等.上面的代码是我尝试这样做的方式,但它不起作用.在循环中命名变量的正确方法是什么?

编辑:我知道我可以使用my_array [count],但那不是我想要的.我需要的是能够在循环中命名变量,使用索引作为变量名称的一部分.

javascript syntax

0
推荐指数
1
解决办法
1155
查看次数