草庐IT

文字生图

全部标签

javascript - 如何在导入语句中使用模板文字?

这个问题在这里已经有了答案:Howtoperforma“variable”ES6import?(12个答案)关闭6年前。当这一行被执行时:importstatsfrom`./${process.env.STATS}`报错如下:Parsingerror:Unexpectedtoken`使用表达式可以成功加载模块:conststats=require(`./${process.env.STATS}`);import语句似乎需要一个常规字符串,因为它与语句一起使用:importstatsfrom'./statsdir'其中'./statsdir'是process.env.STATS的值。为什

javascript - const 与内联字符串文字,编译优化

这不是问题,而是基于代码结构对V8优化的探索。我和另一位开发人员正在就V8的编译优化争论conststringliteralvsinlinestringliteral的值(value)。当然,假设我们始终处于严格模式。这里有一些代码示例放在上下文中:常量constNAME="something";functiondoSomething(s){returnNAME+s;}对比内联字符串functiondoSomething(s){return"something"+s;}我们的共识:-const为魔法值提供更多上下文,从而简化维护。我们不同意的地方:我说const的使用允许V8编译时优化

javascript - 将变量分配为对象与将变量分配为对象文字表示法/对象构造函数表示法有什么区别?

这个问题在这里已经有了答案:Whatisthedifferencebetween`newObject()`andobjectliteralnotation?(12个答案)关闭5年前。我只是碰巧注意到,当将变量分配为Object时,变量的类型是“函数”,而如果我使用对象字面量表示法将其分配为空对象{}或实例化为一个newObject,typeof变量是一个对象。这里有什么区别?请注意,我不是在问对象字面量表示法和构造函数表示法之间的区别。

javascript - 如何有条件地将属性添加到 javascript 对象文字

我正在尝试执行以下操作以满足代码构建器(具体来说是SenchaCmd)的要求。这就是我需要做的本质。关键因素是函数体必须以对象文字的返回结束。由于构建器中的限制,我无法返回变量。因此,如果参数“includeB”为真,如何在下面的伪代码点添加属性“b”,但如果参数为假,则根本不添加属性。即不允许b==undefined或b==null。也许这是不可能的。functioncreate(includeB){//CanhavecodeherebutthefinalthingMUSTbeareturnoftheliteral.//...return{a:1//pseudocode://if(i

javascript - 将 String 文字提取为 Javascript 中的常量是最佳实践吗?

在Java中,我认为最好的做法是在任何时候在多个地方使用字符串文字并期望它们匹配时,用常量变量替换字符串文字。例如,如果您要设置一个cookie,然后再读回它,则cookie的名称应该是一个常量,这样编译器可以帮助您捕获拼写错误,更不用说允许您有一个可读的变量名称与字符串的实际值。我正在审查JavaScript中的一些类似代码,我倾向于建议将文字替换为常量。但是,我不确定同样的原因是否适用,因为没有编译器并且cookie名称与变量名称一样具有描述性。编辑:关于到目前为止收到的评论和回复,我肯定更关心常量的使用而不是它们的实际实现方式。我将它们在Java和其他编译语言中的值(value)

javascript - typescript 要求模板文字

我正在使用typescript,并在连接字符串时提示,constcontent=senderDisplay+','+moment(timestamp).format('YY/MM/DD')+'at'+moment(timestamp).format('h:mmA');[tslint]Useatemplateliteralinsteadofconcatenatingwithastringliteral.(prefer-template)解决这个问题的模板文字是什么?干杯 最佳答案 你可以看到templateliteralsinMDN,

javascript - JS 对象文字和 JSON 字符串有什么区别?

我对人们所说的对象文字、JSON、JavaScript对象的确切含义感到困惑,对我来说它们看起来很相似:{foo:'bar',bar:'baz'}AFAIK,上面是对象字面量、json以及javascript对象,不是吗?对象字面量和json是一个意思吗?你们怎么区分哪个是什么? 最佳答案 变量jsonString包含一个JSON字符串:varjsonString='{"foo":"bar","bar":"baz"}'变量javascriptObject包含一个javascript对象,使用对象字面量初始化:varjavascrip

JavaScript String.split 在字符串文字上生成数组

我见过一些javascript程序员使用这种模式来生成数组:"test,one,two,three".split(',');//=>["test","one","two","three"]他们不是拆分用户输入或某些保存字符串值的变量,而是拆分硬编码的字符串文字以生成数组。在所有情况下,我都看到了像上面这样的一行,似乎只使用数组文字而不依赖split从字符串创建数组是完全合理的。是否有任何理由表明上述创建数组的模式有意义,或者比简单地使用数组文字更有效? 最佳答案 当在运行时拆分字符串而不是使用数组文字时,您是以少量的执行时间换取少量

javascript - 如何使用 JScript 或 JavaScript 创建数组文字?

在HJavaScript中有Arraytype,但我看不到构造文字的方法,例如,将JS转换为[1,2,3]。我不想创建一个newArray()然后将项目插入其中,如果我不需要的话。理想情况下,我在使用类似array::[t]->Arrayt的函数。我可能会使用JConst来实现array,但这似乎是对一些应该是直截了当的东西的hack。我也可以使用上面的创建和推送方法来实现array,不过这也不是很好。这里是插入的array;不太好。array::[Expa]->JS(JArraya)arrayxs=doarr 最佳答案 这个问题是

javascript - CSP 安全的 ES6 模板文字

是否有一个模板引擎可以解析ES6templateliterals样式的模板?(例如"string${var}")而不违反脚本评估的内容安全策略(CSP)限制?CSPrestrictionsonscriptevaluation防止eval、newFunction、setTimeout(string)和setInterval(string)。有许多模板引擎可以提供或修改以提供类似于ES6风格的模板文字,例如JohnResig的MicroTemplates,lodash_.template和DoT.js.然而,所有这些似乎都通过使用newFunction违反了CSP。如果var可以是不受限制