使用 var t=!0 / var t=!1 表示真/假有多安全?他们是否总是返回真正的布尔值真/假
How safe is using var t=!0 / var t=!1 for true / false? Do they always return true boolean true / false?
我们中的许多人都见过/使用以下方法:
var t=!0; (t will equal true)
var t=!1; (t will equal false)
这种评估真/假的方法有多安全?
我看到谷歌一直在使用它。
这些总是返回布尔值真/假吗?
谢谢。
是的:
11.4.9 逻辑非运算符 ( !
生产一元表达式:!一元表达式的计算公式为 遵循:
让 expr 是计算 UnaryExpression 的结果。
让 oldValue 是 ToBoolean(GetValue(expr))。
如果 oldValue 为 true,则返回 false。
返回 true。
资料来源:http://es5.github.com/x11.html#x11.4.9
是的,它们将始终返回true
和false
。
更具体地说,!x
将返回任何"假"值(undefined
、""
等)的true
,反之,为任何"真"值返回false
。
一个更常见的成语是!!x
它将任何"假"值转换为严格false
,将任何"真实"值转换为严格true
- 换句话说,它就像布尔值的"类型转换"。
相关文章:
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 是否可以使用HTML从任意字符串创建Jquery对象,例如var$newlink=$('<a>新链接
- 我们是否可以将定义为字符串的 var 传递给需要字符串的函数的参数
- 是否可以将 php 变量分配给 jquery var,然后刷新该 jquery 变量
- 在 JavaScript 中,当一次声明多个变量时,仅使用一个 var 语句是否有内存优势
- 是否可以使用 JavaScript var i= [[“j.php?i=”+input]];发送到 PHP
- 使用 var t=!0 / var t=!1 表示真/假有多安全?他们是否总是返回真正的布尔值真/假
- 是否可以使用 for 循环进行 DRY 量角器测试?*VaR 即将出现未定义*
- 在 AngularJS 中将对象推送到 $scope.array 与 var x = [ ] 相比时是否存在任何性能问题
- var 是否因为存储在 var 中的 javascript 函数而成为函数
- JavaScript迷你程序是否应该自动组合var声明
- javascript上下文中var的顺序是否重要
- 函数中声明的var是否在多个函数调用中保持不变
- 为什么我的对象是n'如何检查var是否是一个对象
- 是否可以通过避免var来减少内存使用?
- 在JavaScript中对同一个变量多次使用var是否有缺点?
- 如何检查对象或var是否在Javascript中可遍历
- 如何检查var是否是JavaScript中的字符串
- 检查var是否已设置或存在于Angular控制器中
- jquery 检查 JSON var 是否存在