相关疑难解决方法(0)

检测未定义的对象属性

检查JavaScript中的对象属性是否未定义的最佳方法是什么?

javascript object undefined

2742
推荐指数
28
解决办法
112万
查看次数

用于检查对象属性的Javascript"not in"运算符

JavaScript中是否有任何"not in"运算符来检查对象中是否存在属性?我无法在Google或SO周围找到任何相关信息.这是我正在处理的一小段代码,我需要这种功能:

var tutorTimes = {};

$(checked).each(function(idx){
  id = $(this).attr('class');

  if(id in tutorTimes){}
  else{
    //Rest of my logic will go here
  }
});
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我会把所有内容都放在else语句中.我只是为了使用else部分来设置if/else语句似乎是错的...

javascript properties object operators

156
推荐指数
4
解决办法
17万
查看次数

JavaScript:undefined!== undefined?

注意:根据ECMAScript5.1,第15.1.1.3节,window.undefined是只读的.

  • 现代浏览器正确实现此功能 例如:Safari 5.1,Firefox 7,Chrome 20等.
  • 未定义仍然可以改变:Chrome 14,...

当我最近将Facebook ConnectTersus集成时,我最初收到错误消息,Invalid Enumeration ValueHandler already exists在尝试调用Facebook API函数时.

事实证明,问题的原因是

object.x === undefined
Run Code Online (Sandbox Code Playgroud)

当'object'中没有属性'x'时返回false.

我通过在两个Facebook函数中用常规相等替换严格相等来解决这个问题:

FB.Sys.isUndefined = function(o) { return o == undefined;};
FB.Sys.containsKey = function(d, key) { return d[key] != undefined;};
Run Code Online (Sandbox Code Playgroud)

这使得事情对我有用,但似乎暗示了Facebook的JavaScript代码和我自己的代码之间的某种冲突.

什么可能导致这个?

提示:这是有据可查的undefined == null同时undefined !== null.这不是问题.问题是我们如何得到undefined !== undefined.

javascript

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

如果我们设置undefined的值会发生什么?

这一行在下面做了什么?

undefined = 'A value';
Run Code Online (Sandbox Code Playgroud)

如果它没有改变undefined那么幕后会发生什么的价值呢?

javascript undefined

58
推荐指数
2
解决办法
3339
查看次数

如何将javascript var设置为undefined

鉴于:

console.log(boo); this outputs undefined
Run Code Online (Sandbox Code Playgroud)

鉴于:

var boo = 1;
console.log(boo); this outputs 1
Run Code Online (Sandbox Code Playgroud)

在定义boo并设置为1后,如何重置boo,以便console.log输出undefined?

谢谢

javascript

34
推荐指数
4
解决办法
3万
查看次数

Knockout ViewModel基类,Javascript继承

我最近一直在为很多项目使用Knockout.js,我正在编写大量重复的代码.我希望能够定义一个BaseViewModel类,并让我的页面特定的ViewModel继承它.我有点困惑,如何做到这一点是Javascript.这是我的基本内容BaseViewModel:

(function (ko, undefined) {
    ko.BaseViewModel = function () {
        var self = this;
        self.items = ko.observable([]);
        self.newItem = {};
        self.dirtyItems = ko.computed(function () {
            return self.items().filter(function (item) {
                return item.dirtyFlag.isDirty();
            });
        });
        self.isDirty = ko.computed(function () {
            return self.dirtyItems().length > 0;
        });
        self.load = function () { }
    };
}(ko));
Run Code Online (Sandbox Code Playgroud)

我希望能够列出签名等的方法loadBaseViewModel,然后让他们在继承视图模型的定义.这有可能吗?我在网上找到了一些解决方案,但它们都依赖于定义函数/类来使继承工作.

javascript inheritance prototype knockout.js

19
推荐指数
2
解决办法
6273
查看次数

这是什么语法?; (函数($,undefined)

; (function ($, undefined)
{

    // all the variables and functions of the js document

})(jQuery);
Run Code Online (Sandbox Code Playgroud)

我现在已经在jquery/javascript文件中看到过两次这样的缩放脚本.我不明白这究竟是什么.我似乎无法谷歌它,我不记得在最近学习jquery和js时在tizag或w3schools上遇到过这个问题.

此代码之前或之后没有任何内容(除了一些注释).所以我完全迷失了什么(function())(jQuery);是或做了什么.

javascript jquery

8
推荐指数
2
解决办法
2753
查看次数

是否有可能覆盖javascript中的undefined?

喜欢

function myFunction(){
    var undefined = "abc";
}
Run Code Online (Sandbox Code Playgroud)

如果它可能那么如何限制不允许?

javascript

7
推荐指数
2
解决办法
1783
查看次数

使用'var undefined'测试未定义是否有任何问题

对于undefined,这个测试有什么问题吗?

var undefined;

if(x == undefined){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

或这个:

function undefined(x){
    return typeof x == 'undefined';
}

if(undefined(x)){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

jsLint不会抛出一个保留字的错误,但代码似乎仍然有效......

javascript

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

在NodeJS中处理未定义的变量简单条件

鉴于此功能:

var test = function(param1, param2_maybe_not_set) {
  var my_object = {};
  // code here...
}
Run Code Online (Sandbox Code Playgroud)

在您看来,最好的是什么?

my_object.new_key = (param2_maybe_not_set === undefined) ? null : param2_maybe_not_set;
Run Code Online (Sandbox Code Playgroud)

要么

my_object.new_key = (param2_maybe_not_set === void 0) ? null : param2_maybe_not_set;
Run Code Online (Sandbox Code Playgroud)

要么

my_object.new_key = (typeof param2_maybe_not_set === 'undefined') ? null : param2_maybe_not_set;
Run Code Online (Sandbox Code Playgroud)

或者,这个缩短的表达式是否正确?

my_object.new_key = param2_maybe_not_set || null;
Run Code Online (Sandbox Code Playgroud)

所有四种方法都有效(至少在NodeJS控制台中).jsPerf也没有显示出任何这些差距(http://jsperf.com/typeof-performance/8)

应该使用哪一种,作为一种良好做法

javascript

2
推荐指数
1
解决办法
9770
查看次数

输入'字符串| undefined' 不能分配给类型 'string'。“未定义”类型不能分配给“字符串”类型

我正在使用 TypeScript 声明以下变量:

const BOT_PREFIX: string = process.env.PREFIX;
const BOT_TOKEN: string = process.env.TOKEN;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

输入'字符串| undefined' 不能分配给类型 'string'。类型 'undefined' 不可分配给类型 'string'.ts(2322)

我可以通过将数据类型更改为 来修复它any,但我不想这样做。

node.js typescript discord.js

2
推荐指数
1
解决办法
110
查看次数