草庐IT

表达沟通

全部标签

javascript - 为什么要使用 JavaScript 函数声明(和表达式)?

我见过其他人使用以下模式。varbar=functionfoo(){};console.log(bar);//foo()console.log(foo);//ReferenceError:fooisnotdefined但是为什么?如果两者都被宣布,我可以理解这一点,但事实并非如此。原因是什么? 最佳答案 正如其他人所提到的,在您的示例中使用第一种形式(命名函数表达式)有助于调试,尽管随着浏览器中内置开发人员工具的最新改进,这个论点是变得不那么有说服力了。使用命名函数表达式的另一个原因是您可以将函数名称用作函数体内的变量,而不是现在在

javascript - ES6 中命名或未命名类表达式的用途是什么?

在代码中,我使用了一个名为“Car”的类。现在,如果我尝试像varcarNew=newCar("ferrari");那样使用,那么它会向我抛出一个错误。那么命名类表达式在ES6中有什么用呢?'usestrict';varcar=classCar{constructor(model){this.model=model;}}varcarNew=newcar("ferrari");console.log(carNew);//car{model:"ferrari"}console.log(carNew.constructor==car);//true 最佳答案

javascript - 为什么 jshint 提示表达式中的换行符?

当将以下代码传递给jshint时,它认为if条件中的换行符是错误的,并显示“Badlinebreakingbefore'&&'。”if(1==1&&true){console.log("helloworld");}但是,在'&&'之后有换行符是可以的。if(1==1&&true){console.log("helloworld");}为什么jshint认为前者是错的而后者是对的? 最佳答案 根据adiscussiononGitHub:Thismaycauseproblemslikesemicoloninsertionandoldja

javascript - 在 Angular Directive(指令)表达式中将范围变量连接到字符串中

我在Angularng-click指令中使用范围方法,如下所示:{{obj.val1}},{{obj.val2}}这里的问题是obj.val1和obj.val2被解释为传递给表达式中方法的字符串的一部分。我需要将它们作为变量进行评估...我不确定这里的正确方法是什么。有没有一种Angular方法可以将这些值连接到该字符串/表达式中?我只是“做错了”吗? 最佳答案 我创建了一个workingCodePenexample演示如何执行此操作。相关的HTML:ClickMedebug:{{debug.val}}相关的javascript:v

javascript - Javascript 表达式 'a = a || function() {...}' 是什么意思?

我不确定这个构造是什么意思,但我已经见过几次了。下面的示例来自另一个StackOverflow问题。我不确定如何解释初始的“或”构造本身:Object.keys=Object.keys||(function(){varhasOwnProperty=Object.prototype.hasOwnProperty,hasDontEnumBug=!{toString:null}.propertyIsEnumerable("toString"),DontEnums=['toString','toLocaleString','valueOf','hasOwnProperty','isProtot

javascript - 为什么定义在 'if'条件表达式部分的函数在外面不可见?

if(functionf(){}){console.log(f)//Throwanerror:fisnotdefined}为什么日志会报错,f没有在上面的表达式中定义?你会认为这等同于:functionf(){}if(true){console.log(f);//Throwanerror:fisnotdefined} 最佳答案 当你说functionf(){}是一个函数声明语句。该函数将在封闭环境中定义。因此,如果它是在另一个函数中定义的,那么该函数将在该环境中定义,您可以在其中通过名称访问该函数。但是,当您在表达式中使用函数声明时

javascript - 如何使用类型缺少调用或构造签名的表达式解析 ' error TS2351: Cannot use ' new'?

我正在将一个名为Auth.js的.js文件(所以不是.ts文件)导入到我的reactjs和typescript应用程序中,所以在我的组件中我有这个:import*asAuthfrom'../Auth/Auth';..constauth=newAuth();这是我的Auth.js的一部分:exportdefaultclassAuth{auth0=newauth0.WebAuth({domain:AUTH_CONFIG.domain,clientID:AUTH_CONFIG.clientId,redirectUri:AUTH_CONFIG.callbackUrl,audience:`htt

javascript - 函数声明不应放在 block 中。使用函数表达式或将语句移动到外部函数的顶部

我有以下代码:if(typeofconsole==="object"&&typeofconsole.error==="function"){functione(msg){"usestrict";console.info(msg);}}jsLint给出了以下错误:Functionstatementsshouldnotbeplacedinblocks.Useafunctionexpressionormovethestatementtothetopoftheouterfunction.为什么会出现这个错误,这是什么意思? 最佳答案 解释来

javascript - "is x greater than y and less than z"的表达式?

我正在尝试测试一个数字是否大于0但小于8。我如何在JavaScript中执行此操作?这就是我正在尝试的:if(score>0 最佳答案 代码如下:if(score>0&&score附言这与jQuery无关。这很简单,裸JavaScript! 关于javascript-"isxgreaterthanyandlessthanz"的表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions

javascript - 数组中用于匹配表达式的字符串之一

问题:我有一个promise数组,它被解析为一个字符串数组。现在,如果至少有一个字符串与正则表达式匹配,则测试应该通过。目前,我使用简单的字符串连接来解决它:protractor.promise.all([text1,text2,text3]).then(function(values){expect(values[0]+values[1]+values[2]).toMatch(/expression/);});显然,这扩展性不佳并且可读性不是特别好。问题:可以使用自定义jasmine匹配器或jasmine.any()来解决它或customasymmetricequalityteste