jjzjj

Javascript 数组对象与类似数组的对象——说明

我试图对声明为数组对象的类数组对象进行字符串化,发现JSON.stringify在定义为数组对象时无法正确处理类数组对象。为了更清楚,请参见下文,-->jsFiddlevarsimpleArray=[];//notethatitisdefinedasArrayObjectalert(typeofsimpleArray);//returnsobject->ArrayObjectsimpleArray['test1']='test1';simpleArray['test2']='test2';alert(JSON.stringify(simpleArray));//returns[]它工作

javascript - '错误 : Unexpected request' during Karma Angular Unit Test

运行gruntkarma时,其中一个指令的测试在尝试获取模板时失败。我使用ng-html2js作为预处理器。这是我的一些karma.conf.jsplugins:['karma-chrome-launcher','karma-jasmine','ng-html2js','karma-ng-html2js-preprocessor'],preprocessors:{'app/scripts/directives/**/*.html':'ng-html2js'},ngHtml2JsPreprocessor:{moduleName:'templates'}在我的测试中,我有以下内容:'use

javascript - IIFE 中的变量提升(惰性解析)

在以下情况下我得到了一个非常奇怪的输出:functiontest(){vartest=123;console.log(test)}//thisoutput:123(functiontest(){vartest=123;console.log(test)})()//thisoutput:123但是当使用下面的代码时(functiontest(){test=123;console.log(test)})()//output:functiontest(){test=123;console.log(test)}谁能解释一下。 最佳答案 您看

带有方括号而不是圆括号的 JavaScript 数组 `push` - 没有错误?

我这样做是偶然的......varnumbers=[1,2,3,4];numbers.push[5];为什么没有错误消息?push需要括号,而不是方括号。这只是一个简单的错字。我没有足够注意我在做什么...但为什么没有错误消息?据我所知,数字数组没有以任何方式修改。它只是……什么都没做。 最佳答案 numbers.push只是一个函数,但您试图从中找到位于键5的属性,该属性的计算结果为undefined。functiontest(){console.log("test");}//test[5]evaluatesto`undefine

javascript - jQuery 单例

我在文件中有类似test.js的内容:(function($){$.test=function(){alert('test');}})(jQuery);jQuery.test();现在,如果test.js在我的页面中加载两次,即src=test.js在两个不同的位置,它会发出两次警报。我希望它像一个单例。关于如何实现这一目标的任何想法? 最佳答案 使用条件快捷方式:(function($){!$.test&&$.test=function(){alert('test');}})(jQuery);jQuery.test();!$.te

javascript - 正则表达式测试函数不返回相同的依赖引号

我在javascript中有一个带有正则表达式的奇怪案例:varre=/[^\s]+(?:\s+|$)/g;re.test('foo');//returntruere.test("foo");//returnfalse正则表达式类型敏感吗?我的第一个目标是提取字符串的所有单词(由一个或多个空格分隔)。感谢您的帮助。朱利安 最佳答案 在Javascript正则表达式上使用g标志时,它将跟踪找到最后一个匹配项的位置,并在您下次尝试查找匹配项时从该索引开始搜索。在两次re.test()调用之间,查看re.lastIndex以了解我在说什么

用于在问号之前获取字符串的 Javascript 正则表达式(如果存在)

我有这个字符串:#test或#test?params=somethingvarregExp=/(^.*)?\?/;varmatches=regExp.exec($(this).data('target'));vartarget=matches[1];console.log(target);我总是只需要获取#test.如果没有找到问号,我粘贴的函数将返回错误。目标是始终返回#test无论是否有其他参数。如何制作返回此内容的正则表达式? 最佳答案 该字符串是否直接来自当前页面的URL?如果是这样,您可以简单地使用:window.loca

javascript - Internet Explorer 中的只读输入框错误

我有一个奇怪的错误,好吧,MSIE有。似乎它在所有主要的MSIE版本上都失败了:6、7、8和9(!)testjQuery(document).ready(function(){vartest=jQuery('#in');test.focus(function(){if(test.val()=='empty')test.val('');test.attr('readonly',false);});test.blur(function(){if(test.val()=='')test.val('empty');test.attr('readonly',true);});});让我解释一下这

javascript - 检查数据是否不可变

测试var是否包含不可变数据(即string、number、boolean)的最快最干净的方法是什么,null,undefined)?例如当vartest是可变的时,以下是合法的:vartest={};//thenext2linesworkbecause`test`hasmutabledatatest.someFun=function(){alert(this);};test.someFun();但是当vartest不可变时,它是非法的:vartest="string";//thenext2linesareinvalid,as`test`isaprimitivetest.someFun

javascript - 如何使用 JsTestDriver 测试 jquery 和 ajax 调用?

我有一个用jQuery构建的动态页面。HTML片段从mustache加载模板。这些模板是从url下载的,我想对整个html结构进行单元测试:JsTestDriver测试是:AppTest=TestCase("AppTest")AppTest.prototype.test=function(){varactualHtml="";getHtml({"title":"title","header":"header","text":"text","authors":[{"firstname":"firstname","lastname":"lastname"}]},function(html)