相关疑难解决方法(0)

什么是暂时死区?

我听说在初始化之前访问letconst值可能会导致ReferenceError因为称为时间死区的东西.

什么是暂时死区,它与范围和吊装有什么关系,以及在什么情况下遇到?

javascript const let ecmascript-6

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

JavaScript双冒号(绑定运算符)

如您所知,有一个.bind()功能快捷方式的建议,所以您可以写:

::this.handleStuff
Run Code Online (Sandbox Code Playgroud)

它将在es5中像那样工作:

this.handleStuff.bind(this)
Run Code Online (Sandbox Code Playgroud)

我的问题是:这样可以传递参数吗?

我的意思是用上述快捷方式编写这个方法:

this.handleStuff.bind(this, 'stuff')
Run Code Online (Sandbox Code Playgroud)

这在React中是一个非常常见的模式,所以稍微缩短它会很好.

javascript ecmascript-harmony ecmascript-next

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

++ someVariable Vs. Javascript中的someVariable ++

在Javascript中,您可以++在变量名称之前或之后使用运算符.这些增量变量的方法之间的区别是什么?

javascript increment unary-operator

122
推荐指数
5
解决办法
5万
查看次数

在JavaScript中Ruby的|| =(或等于)?

我喜欢Ruby的||=机制.如果变量不存在或是nil,则创建它并将其设置为等于:

amount # is nil
amount ||= 0 # is 0
amount ||= 5 # is 0
Run Code Online (Sandbox Code Playgroud)

我现在需要在JavaScript中做类似的事情.什么是惯例或正确的方法来做到这一点?我知道||=语法不正确.处理它的两种明显方法是:

window.myLib = window.myLib || {};

// or

if (!window.myLib)
  window.myLib = {};
Run Code Online (Sandbox Code Playgroud)

javascript ruby syntax

118
推荐指数
5
解决办法
4万
查看次数

运算符优先级与Javascript三元运算符

我似乎无法将这个代码的第一部分(+ =)与三元运算符结合起来.

h.className += h.className ? ' error' : 'error'
Run Code Online (Sandbox Code Playgroud)

我认为这段代码的工作方式如下:

h.className = h.className + h.className ? ' error' : 'error'
Run Code Online (Sandbox Code Playgroud)

但这不正确,因为这会在我的控制台中出错.

所以我的问题是我应该如何正确地插入这段代码?

javascript variable-assignment conditional-operator operator-precedence compound-assignment

116
推荐指数
3
解决办法
10万
查看次数

如果在JavaScript中为null或未定义,则替换值

我有一个要求将??C#运算符应用于JavaScript,我不知道如何.在C#中考虑这个:

int i?=null;
int j=i ?? 10;//j is now 10
Run Code Online (Sandbox Code Playgroud)

现在我在JavaScript中设置了这个:

var options={
       filters:{
          firstName:'abc'
       } 
    };
var filter=options.filters[0]||'';//should get 'abc' here, it doesn't happen
var filter2=options.filters[1]||'';//should get empty string here, because there is only one filter
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

谢谢.

编辑:我发现了一半的问题:我不能使用'indexer'表示对象(my_object[0]).有没有办法绕过它?(我事先不知道过滤器属性的名称,也不想迭代它们).

javascript

107
推荐指数
5
解决办法
12万
查看次数

用于自动执行匿名JavaScript函数的括号的位置?

我最近将当前版本的json2.js与我在项目中的版本进行了比较,并注意到函数表达式的创建和自我执行方式有所不同.

用于在括号中包装匿名函数然后执行它的代码,

(function () {
  // code here
})();
Run Code Online (Sandbox Code Playgroud)

但现在它将自动执行的函数包含在括号中.

(function () {
  // code here
}());
Run Code Online (Sandbox Code Playgroud)

有通过CMS在接受答案的注释解释JavaScript的封装匿名函数的语法是"既:(function(){})();(function(){}());有效."

我想知道有什么区别?前者是否通过绕过全局匿名函数来占用内存?括号应该放在哪里?

javascript syntax anonymous-function iife

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

分配左侧的Javascript对象括号表示法({Navigation} =)

我以前没有看过这种语法,我想知道它的全部内容.

var { Navigation } = require('react-router');
Run Code Online (Sandbox Code Playgroud)

左侧的括号抛出语法错误:

意外的标记 {

我不确定webpack配置的哪个部分正在转换或者语法的目的是什么.这是和谐的事吗?有人可以开导我吗?

javascript ecmascript-6 webpack

97
推荐指数
4
解决办法
8501
查看次数

"var FOO = FOO || {}"(将变量或空对象分配给该变量)在Javascript中意味着什么?

看一下在线源代码,我在几个源文件的顶部看到了这个.

var FOO = FOO || {};
FOO.Bar = …;
Run Code Online (Sandbox Code Playgroud)

但我不知道是什么|| {}.

我知道{}是等于new Object(),我认为这||是为了"如果它已经存在使用其值,否则使用新对象.

为什么我会在源文件的顶部看到这个?

javascript namespaces variable-declaration or-operator

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

怎么!!〜(不是不是波浪形/爆炸声波)改变'包含/包含'数组方法调用的结果?

如果您在这里阅读jQuery inArray页面上的注释,那么有一个有趣的声明:

!!~jQuery.inArray(elm, arr) 
Run Code Online (Sandbox Code Playgroud)

现在,我相信双感叹号会将结果转换为类型boolean,值为true.我不明白的是,~在所有这些中使用了tilde()运算符是什么?

var arr = ["one", "two", "three"];
if (jQuery.inArray("one", arr) > -1) { alert("Found"); }
Run Code Online (Sandbox Code Playgroud)

重构if声明:

if (!!~jQuery.inArray("one", arr)) { alert("Found"); }
Run Code Online (Sandbox Code Playgroud)

分解:

jQuery.inArray("one", arr)     // 0
~jQuery.inArray("one", arr)    // -1 (why?)
!~jQuery.inArray("one", arr)   // false
!!~jQuery.inArray("one", arr)  // true
Run Code Online (Sandbox Code Playgroud)

我也注意到,如果我把波浪号放在前面,结果是-2.

~!!~jQuery.inArray("one", arr) // -2
Run Code Online (Sandbox Code Playgroud)

我不明白这里代字号的目的.有人可以解释一下或指向我的资源吗?

javascript jquery operators bitwise-operators

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