相关疑难解决方法(0)

如何在JavaScript中检查empty/undefined/null字符串?

我看到了这个帖子,但我没有看到JavaScript特定的例子.有一个简单string.Empty的JavaScript可用,还是只是检查的情况""

javascript null is-empty

2645
推荐指数
45
解决办法
276万
查看次数

检查JavaScript中是否存在对象

如何在JavaScript中验证对象的存在?

以下作品:

if (!null)
   alert("GOT HERE");
Run Code Online (Sandbox Code Playgroud)

但这会引发错误:

if (!maybeObject)
   alert("GOT HERE");
Run Code Online (Sandbox Code Playgroud)

错误:

maybeObject 没有定义.

javascript variables debugging null undefined

296
推荐指数
9
解决办法
49万
查看次数

JavaScript isDOM - 如何检查JavaScript对象是否是DOM对象?

我想要:

document.createElement('div')  //=> true
{tagName: 'foobar something'}  //=> false
Run Code Online (Sandbox Code Playgroud)

在我自己的脚本中,我曾经只是使用它,因为我从来不需要tagName作为属性:

if (!object.tagName) throw ...;
Run Code Online (Sandbox Code Playgroud)

因此,对于第二个对象,我想出了以下作为快速解决方案 - 主要是有效的.;)

问题是,它取决于执行只读属性的浏览器,而不是所有人都这样做.

function isDOM(obj) {
  var tag = obj.tagName;
  try {
    obj.tagName = '';  // Read-only for DOM, should throw exception
    obj.tagName = tag; // Restore for normal objects
    return false;
  } catch (e) {
    return true;
  }
}
Run Code Online (Sandbox Code Playgroud)

有一个很好的替代品吗?

javascript dom object

223
推荐指数
8
解决办法
16万
查看次数

如何检测IE11?

当我想检测IE时,我使用此代码:

function getInternetExplorerVersion()
{
  var rv = -1;
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}
function checkVersion()
{
  var msg = "You're not using Internet Explorer.";
  var ver = getInternetExplorerVersion();

  if ( ver > -1 )
  {
    msg = "You are using IE " + ver;
  }
  alert( msg );
}
Run Code Online (Sandbox Code Playgroud)

但IE11正在返回"你没有使用Internet Explorer".我该如何检测它?

debugging internet-explorer browser-detection forward-compatibility internet-explorer-11

207
推荐指数
7
解决办法
22万
查看次数

有人能解释这个"双重否定"的伎俩吗?

我绝不是Javascript的专家,但我一直在阅读Mark Pilgrim的"潜入HTML5"网页,他提到了一些我想要更好理解的内容.

他说:

最后,使用双负技巧将结果强制为布尔值(true或false).

function supports_canvas() {
  return !!document.createElement('canvas').getContext;
}
Run Code Online (Sandbox Code Playgroud)

如果有人能够更好地解释这一点我会很感激!

javascript html5

193
推荐指数
6
解决办法
3万
查看次数

双感叹号?

可能重复:
什么是!! (不是)JavaScript中的运算符?
什么!! 运算符(双惊叹号)在JavaScript中意味着什么?

所以我正在调试一些代码并遇到这个:

var foo.bar = 0; // this is actually passed from another function, adding it for context

function(foo) {
    var someVar = !!foo.bar;

    if (foo.bar) {
      // ..stuff happens
    } else {
      // .. something else happens
    }
}
Run Code Online (Sandbox Code Playgroud)

好的,我的问题是什么意思!!?所有这一切都在做0 === false.

  1. 与之相比,使用它有什么好处boolean(foo.bar)

  2. foo.bar可以在if中进行评估,因为0 === false已经,所以为什么要进行转换?(someVar不会在其他任何地方重复使用)

javascript

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

如何针对某些情况(如Internet Explorer特定的CSS或特定于Internet Explorer的JavaScript代码)仅定位Internet Explorer 10?

如何针对某些情况(如Internet Explorer特定的CSS或特定于Internet Explorer的JavaScript代码)仅定位Internet Explorer 10?

我试过这个,但它不起作用:

<!--[if IE 10]>    <html class="no-js ie10" lang="en"> <![endif]-->
<!--[if !IE]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)

Internet Explorer 10忽略条件注释并使用<html lang="en" class="no-js">而不是<html class="no-js ie10" lang="en">.

html javascript css conditional-comments internet-explorer-10

159
推荐指数
10
解决办法
16万
查看次数

在javascript中双重否定(!!) - 目的是什么?

可能重复:
什么是!! (不是)JavaScript中的运算符?

我遇到过这段代码

function printStackTrace(options) {
    options = options || {guess: true};
    var ex = options.e || null, guess = !!options.guess;
    var p = new printStackTrace.implementation(), result = p.run(ex);
    return (guess) ? p.guessAnonymousFunctions(result) : result;
}
Run Code Online (Sandbox Code Playgroud)

并不禁想知道为什么双重否定?是否有另一种方法可以达到同样的效果?

(代码来自https://github.com/eriwen/javascript-stacktrace/blob/master/stacktrace.js)

javascript

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

.includes()无法在Internet Explorer中使用

此代码在Internet Explorer中不起作用.还有其他选择

"abcde".includes("cd")
Run Code Online (Sandbox Code Playgroud)

javascript

88
推荐指数
4
解决办法
10万
查看次数

这个符号在JavaScript中意味着什么?

这是什么?

这是一系列关于JavaScript中语法的问题.这也是社区Wiki,因此邀请每个人参与维护此列表.

为什么是这样?

Stack Overflow不允许搜索特定字符.因此,在搜索运算符和其他语法标记时,很难找到许多关于运算符和其他语法标记的问题.这也使得关闭重复更加困难.以下列表是为了解决此问题.

主要思想是在Stack Overflow上链接现有问题,因此我们更容易引用它们,而不是复制ECMAScript规范中的内容.

此外,这是PHP符号引用的公然副本.我们需要一个JS.


请帮忙.编辑并添加指向其他运算符/语法参考的链接,或者如果您无法在特定语法上找到好的问题/答案,请添加此问题的答案并将其链接

javascript

86
推荐指数
1
解决办法
14万
查看次数