我将通过例子解释:
猫王运营商(?:)
"Elvis运算符"是Java三元运算符的缩写.这方面的一个实例是,如果表达式解析为false或null,则返回"合理的默认值".一个简单的例子可能如下所示:
def gender = user.male ? "male" : "female" //traditional ternary operator usage
def displayName = user.name ?: "Anonymous" //more compact Elvis operator
Run Code Online (Sandbox Code Playgroud)
安全导航操作员(?.)
安全导航操作符用于避免NullPointerException.通常,在引用对象时,可能需要在访问对象的方法或属性之前验证它是否为null.为了避免这种情况,安全导航操作符将只返回null而不是抛出异常,如下所示:
def user = User.find( "admin" ) //this might be null if 'admin' does not exist
def streetName = user?.address?.street //streetName will be null if user or user.address is null - no NPE thrown
Run Code Online (Sandbox Code Playgroud) var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() )
? 'value'
: 'innerHTML'
Run Code Online (Sandbox Code Playgroud)
我在一个答案中看到了它,我以前从未见过它.
这是什么意思?
我的一位同事偶然发现了一种方法来使用按位或者:
var a = 13.6 | 0; //a == 13
Run Code Online (Sandbox Code Playgroud)
我们在谈论它并想知道一些事情.
Math.floor吗?也许它快一点?(双关语不打算)谢谢.
我正在学习JavaScript,在浏览jQuery库时,我看到:(冒号)被大量使用.这在JavaScript中用于什么?
// Return an array of filtered elements (r)
// and the modified expression string (t)
return { r: r, t: t };
Run Code Online (Sandbox Code Playgroud) 我知道我可以测试一个javascript变量然后定义它,如果它是未定义的,但是没有一些方法可以说
var setVariable = localStorage.getItem('value') || 0;
似乎是一种更清晰的方式,我很确定我已经在其他语言中看到过这种情况.
你有没有看过JQuery 1.4源代码的内幕,并注意到它是如何以下列方式封装的:
(function( window, undefined ) {
//All the JQuery code here
...
})(window);
Run Code Online (Sandbox Code Playgroud)
我读过一篇关于JavaScript Namespacing的文章和另一篇名为" 一对重要的Parens "的文章,所以我知道这里发生了什么.
但我以前从未见过这种特殊的语法.在那undefined做什么?为什么window需要通过然后再次出现?
我正在研究过滤器在Angularjs中是如何工作的,我看到我们需要发送2组括号.
$filter('number')(number[, fractionSize])
Run Code Online (Sandbox Code Playgroud)
它意味着什么,我们如何使用JavaScript处理它?
我正在查看Mozilla的代码,它为Array添加了一个过滤方法,它有一行代码让我很困惑.
var len = this.length >>> 0;
Run Code Online (Sandbox Code Playgroud)
我以前从未见过用于JavaScript的>>>.
它是什么,它做了什么?
console.log(0.5 | 0); // 0
console.log(-1 | 0); // -1
console.log(1 | 0); // 1
Run Code Online (Sandbox Code Playgroud)
为什么0.5 | 0返回零,但任何整数(包括负数)都返回输入整数?单管("|")做什么?
是否有一个null-safe属性访问(空传播/存在)操作者在ES6(ES2015/JavaScript.next /和谐)等?.中的CoffeeScript例如?或者是否计划用于ES7?
var aThing = getSomething()
...
aThing = possiblyNull?.thing
Run Code Online (Sandbox Code Playgroud)
这将大致如下:
if (possiblyNull != null) aThing = possiblyNull.thing
Run Code Online (Sandbox Code Playgroud)
理想情况下,解决方案不应该分配(甚至undefined)到aThing如果possiblyNull是null
javascript ×10
jquery ×2
syntax ×2
angularjs ×1
babeljs ×1
bit-shift ×1
coffeescript ×1
ecmascript-6 ×1
groovy ×1
operators ×1
undefined ×1