草庐IT

var_available_in_function

全部标签

javascript - IE8 for...in 枚举器

所以我在IE8中使用这个:varhi=["hi","lo","foo","bar"];for(iinhi){console.log(i)};//WTFisthatindexOfivalue?LOG:0LOG:1LOG:2LOG:3LOG:indexOfundefined在chrome和其他浏览器中,我只会得到0-3,没有神秘的“indexOf”东西。为什么以及解决方法是什么? 最佳答案 不要对数组使用for...in。在这种情况下,最好使用传统的for循环。原因是因为for...in将数组视为一个对象,因此indexOf或lengt

javascript - Window vs Var 声明变量

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:DifferencebetweenusingvarandnotusingvarinJavaScriptShouldIusewindow.variableorvar?我见过两种在javascript中声明类的方法。喜欢window.ABC=....或varABC=....在使用类/变量方面有什么不同吗?

Javascript 正则表达式.test() "Uncaught TypeError: undefined is not a function"

只是尝试通过.test()函数使用javascript的正则表达式功能。varnameRegex='/^[a-zA-Z0-9_]{6,20}$/';if(nameRegex.test($('#username').val())){...}错误在这一行if(nameRegex.test($('#username').val())){调试器在那里中断并说“UncaughtTypeError:undefinedisnotafunction”。好像.test()没有定义?不应该吗? 最佳答案 就目前而言,nameRegex不是正则表达式而是

javascript - 如何在 setTimeout 调用中解决 Var 超出范围的问题

我正在尝试从setInterval回调中调用setTimeout:functioncallback(){//assignmyVarvarmyVar=document.getElementById("givenID");//...//nowwait2secsthencallsomecodethatusesmyVArsetTimeout("myVar.innerHTML='TEST'",2000);}setInterval("callback();",10000);setInterval按预期工作,但setTimeout调用失败。我想这个问题与我引用的变量(myVar)不在范围内有关。解决

javascript - 正在使用 var foo = function foo() {};在 IE < 9 中创建内存泄漏的表达式?

我知道这种形式:varfoo=functionbar(){};会将bar名称泄漏到封闭范围并在jscript中创建两个函数。怎么样:varfoo=functionfoo(){};?它仍然将名称泄漏到封闭范围,但无论如何它都在那里(thxtovarfoo)。我知道它将在整个范围内定义,但它会创建两个函数并立即取消引用/销毁其中一个,还是这仍然会导致泄漏?在这种情况下:varbar=function(){foo();varfoo=functionfoo(){};}bar()中是否有两个函数对象?编辑好的,它肯定创建了两个函数对象,现在的问题是:在varfoo行之后,由命名定义创建的函数是否

javascript - 不可枚举的属性出现在 Chrome 的 for...in 循环中

for-in循环将遍历对象的所有可枚举属性,甚至是原型(prototype)链中的属性。hasOwnProperty函数可以过滤掉原型(prototype)链中的那些可枚举属性。最后,propertyIsEnumerable函数可以区分对象的可枚举属性。因此,以下脚本不应打印任何内容:for(ainwindow)if(window.hasOwnProperty(a)&&!window.propertyIsEnumerable(a))console.log(a);然而,在Chrome上,上面的代码会打印很多属性名称。为什么for-in循环和propertyIsEnumerable在可枚举

javascript - Visual Studio 2010 JavaScript Intellisense 在 "function"中大写 F

我最近遇到了一件非常烦人的事,我不明白为什么会这样。不确定它是什么时候开始的,因为我最近擦了我的机器,所以它可能是最近的更新,也可能是很久以前的。不管怎样,这就是正在发生的事情。当我在内联声明一个匿名函数并开始键入“function(){...}”部分时,VS2010intellisense出现并将我的小写函数替换为它自己的大写“Function”。我想这是JavaScript或JScript或其他东西中的一些静态函数,但我不知道。无论哪种方式,当我键入“()”时,它都假定这就是我想要的。如果我声明一个独立的函数,它不会受到影响,因为我没有在后面加上“()”,所以它只保留我输入的内容。

javascript - 调试 $digest already in progress 错误

我正在构建一个复杂的混合应用程序,并且已经在真实设备上进行了测试。有时,我会从Angular收到可怕的$digestalreadyinprogress错误-特别是,它似乎是在一个有点长的摘要周期之后。从堆栈跟踪来看,它似乎是从一个更新location.href的Angular延迟函数启动的,然后触发fastclick发送一个touchend,进而触发导致错误的第二个摘要。有没有人遇到过同样的错误-如果遇到过,您是如何解决的?对于那些感兴趣的人,这是我在堆栈跟踪中看到的:Error:[$rootScope:inprog]$digestalreadyinprogresshttp://err

javascript - 服务器发送的事件 : How do you automatically reconnect in a cross-browser way?

我实现了一些代码来查询数据库的任何更改并发送事件。这是我的PHP脚本的代码header("Content-Type:text/event-stream");header('Cache-Control:no-cache');//****Somecodeheretoquerythedatabaseecho"event:message\n";echo"data:change_from_database\n";echo"\n\n";ob_flush();flush();我依靠浏览器在每次连接关闭时自动重新连接,所以我没有在我的服务器代码上实现任何循环。另外,我从thisthread中了解到实现

javascript - 如何处理 Firebase Cloud Functions 中的错误 JSON?

我正在创建一个使用firebase-cloud-functions的firebase应用程序。索引.jsexports.auth=functions.https.onRequest((request,response)=>{response.status(200).send({status:"SomeStatus"});}这是非常简单的功能。我想使用一些负载在端点上发出POST请求。当我使用FirebaseCloudFunctionEmulator和带有badjson的POSTman测试API时{"phoneNumber:"9632725300"}服务器刚刚崩溃了!我的问题是如何处理这