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


#1楼

我没有看到(希望我没有错过它)有人在属性之前检查对象。 因此,这是最短和最有效的(尽管不一定最清晰):

if (obj && obj.prop) {// Do something;
}

如果obj或obj.prop未定义,为null或为“ falsy”,则if语句将不执行代码块。 这通常是大多数代码块语句(在JavaScript中)所需的行为。


#2楼

我从相关问题中交叉回答我的答案 如何在JavaScript中检查“未定义”?

特定于此问题,请参见someObject.<whatever>测试用例。


一些场景说明了各种答案的结果: http : //jsfiddle.net/drzaus/UVjM4/

(请注意,在范围内的包装器中, in测试中使用var会有所不同)

参考代码:

(function(undefined) {var definedButNotInitialized;definedAndInitialized = 3;someObject = {firstProp: "1", secondProp: false// , undefinedProp not defined}// var notDefined;var tests = ['definedButNotInitialized in window','definedAndInitialized in window','someObject.firstProp in window','someObject.secondProp in window','someObject.undefinedProp in window','notDefined in window','"definedButNotInitialized" in window','"definedAndInitialized" in window','"someObject.firstProp" in window','"someObject.secondProp" in window','"someObject.undefinedProp" in window','"notDefined" in window','typeof definedButNotInitialized == "undefined"','typeof definedButNotInitialized === typeof undefined','definedButNotInitialized === undefined','! definedButNotInitialized','!! definedButNotInitialized','typeof definedAndInitialized == "undefined"','typeof definedAndInitialized === typeof undefined','definedAndInitialized === undefined','! definedAndInitialized','!! definedAndInitialized','typeof someObject.firstProp == "undefined"','typeof someObject.firstProp === typeof undefined','someObject.firstProp === undefined','! someObject.firstProp','!! someObject.firstProp','typeof someObject.secondProp == "undefined"','typeof someObject.secondProp === typeof undefined','someObject.secondProp === undefined','! someObject.secondProp','!! someObject.secondProp','typeof someObject.undefinedProp == "undefined"','typeof someObject.undefinedProp === typeof undefined','someObject.undefinedProp === undefined','! someObject.undefinedProp','!! someObject.undefinedProp','typeof notDefined == "undefined"','typeof notDefined === typeof undefined','notDefined === undefined','! notDefined','!! notDefined'];var output = document.getElementById('results');var result = '';for(var t in tests) {if( !tests.hasOwnProperty(t) ) continue; // blehtry {result = eval(tests[t]);} catch(ex) {result = 'Exception--' + ex;}console.log(tests[t], result);output.innerHTML += "\n" + tests[t] + ": " + result;}
})();

结果:

definedButNotInitialized in window: true
definedAndInitialized in window: false
someObject.firstProp in window: false
someObject.secondProp in window: false
someObject.undefinedProp in window: true
notDefined in window: Exception--ReferenceError: notDefined is not defined
"definedButNotInitialized" in window: false
"definedAndInitialized" in window: true
"someObject.firstProp" in window: false
"someObject.secondProp" in window: false
"someObject.undefinedProp" in window: false
"notDefined" in window: false
typeof definedButNotInitialized == "undefined": true
typeof definedButNotInitialized === typeof undefined: true
definedButNotInitialized === undefined: true
! definedButNotInitialized: true
!! definedButNotInitialized: false
typeof definedAndInitialized == "undefined": false
typeof definedAndInitialized === typeof undefined: false
definedAndInitialized === undefined: false
! definedAndInitialized: false
!! definedAndInitialized: true
typeof someObject.firstProp == "undefined": false
typeof someObject.firstProp === typeof undefined: false
someObject.firstProp === undefined: false
! someObject.firstProp: false
!! someObject.firstProp: true
typeof someObject.secondProp == "undefined": false
typeof someObject.secondProp === typeof undefined: false
someObject.secondProp === undefined: false
! someObject.secondProp: true
!! someObject.secondProp: false
typeof someObject.undefinedProp == "undefined": true
typeof someObject.undefinedProp === typeof undefined: true
someObject.undefinedProp === undefined: true
! someObject.undefinedProp: true
!! someObject.undefinedProp: false
typeof notDefined == "undefined": true
typeof notDefined === typeof undefined: true
notDefined === undefined: Exception--ReferenceError: notDefined is not defined
! notDefined: Exception--ReferenceError: notDefined is not defined
!! notDefined: Exception--ReferenceError: notDefined is not defined

#3楼

这是什么意思: “未定义的对象属性”

实际上,这可能意味着两个完全不同的事物! 首先,它可以表示从未在对象中定义的属性,其次,它可以表示具有未定义值属性 。 让我们看一下这段代码:

var o = { a: undefined }

oa是未定义的吗? 是! 其值是不确定的。 ob是undefined吗? 当然! 根本没有属性“ b”! 好的,现在看一下两种情况下不同方法的行为:

typeof o.a == 'undefined' // true
typeof o.b == 'undefined' // true
o.a === undefined // true
o.b === undefined // true
'a' in o // true
'b' in o // false

我们可以清楚地看到typeof obj.prop == 'undefined'obj.prop === undefined是等效的,并且它们不能区分那些不同的情况。 而'prop' in obj可以检测到根本没有定义属性并且不注意可能未定义的属性值的情况。

那么该怎么办?

1)您想知道一个属性是否未按第一个含义或第二个含义定义(最典型的情况)。

obj.prop === undefined // IMHO, see "final fight" below

2)您只想知道对象是否具有某些属性,而不关心其值。

'prop' in obj

笔记:

  • 您不能同时检查一个对象及其属性。 例如,此xa === undefined或此类型的typeof xa == 'undefined'引发ReferenceError: x is not defined如果typeof xa == 'undefined' ReferenceError: x is not defined x。
  • 变量undefined是一个全局变量(因此实际上它是浏览器中的window.undefined )。 因为ECMAScript的第1版已支持,因为ECMAScript的5它是只读的 。 因此,在现代浏览器中,不能像许多作者喜欢的那样将其重新定义为true ,但是对于较旧的浏览器来说,这仍然是正确的。

最后一战: obj.prop === undefined vs typeof obj.prop == 'undefined'

obj.prop === undefined

  • 有点短,看起来更漂亮
  • 如果您拼错了undefined ,JavaScript引擎会给您一个错误

obj.prop === undefined

  • undefined可以在旧的浏览器中覆盖

typeof obj.prop == 'undefined'

  • 真的很普遍! 它可以在新旧浏览器中使用。

typeof obj.prop == 'undefined'

  • 'undefned'拼写错误 )只是一个字符串常量,因此,如果您像我刚才那样拼写错误,那么JavaScript引擎将无法为您提供帮助。

更新(用于服务器端JavaScript):

Node.js支持将undefinedglobal.undefined (也可以不使用'global'前缀使用)。 我不知道服务器端JavaScript的其他实现。


#4楼

这是我的情况:

我正在使用REST调用的结果。 结果应从JSON解析为JavaScript对象。

我需要捍卫一个错误。 如果就用户指定的args错误而言,rest调用的args不正确,则rest调用基本上返回为空。

在使用这篇文章帮助我进行防御时,我尝试了一下。

if( typeof restResult.data[0] === "undefined" ) { throw  "Some error"; }

就我的情况而言,如果restResult.data [0] ===“ object”,那么我可以安全地开始检查其余成员。 如果未定义,则抛出上述错误。

我的意思是,就我的情况而言,本文中以上所有建议均无效。 我并不是说我是对的,每个人都是错误的。 我根本不是JavaScript大师,但希望这会对某人有所帮助。


#5楼

在《 探索JavaScript中的Null和Undefined的深渊》一文中,我读到像Underscore.js之类的框架使用此函数:

function isUndefined(obj){return obj === void 0;
}

#6楼

void 0比较,简洁。

if (foo !== void 0)

它不像if (typeof foo !== 'undefined')那样冗长


#7楼

' 如果(window.x){} '是错误安全的

您最可能想要if (window.x) 。 即使未声明var x;var x; ),此检查也是安全的-浏览器不会引发错误。

示例:我想知道我的浏览器是否支持History API

if (window.history) {history.call_some_function();
}

工作原理:

window是一个将所有全局变量作为其成员的对象,尝试访问不存在的成员是合法的。 如果尚未声明x或尚未设置x,window.x返回undefined如果if()对其进行评估,则undefined会导致false


#8楼

尽管这里的许多其他答案都强烈建议typeoftypeof 是一个不好的选择 。 永远不要将其用于检查变量是否具有值undefined ,因为它可以作为对值undefined和变量是否存在的组合检查。 在大多数情况下,您知道什么时候存在变量,如果您在变量名称或字符串文字'undefined'中输入错误, typeof只会导致潜在的失败。

var snapshot = …;if (typeof snaposhot === 'undefined') {//         ^// misspelled¹ – this will never run, but it won’t throw an error!
}
var foo = …;if (typeof foo === 'undefned') {//                   ^// misspelled – this will never run, but it won’t throw an error!
}

因此,除非您要进行特征检测²,否则不确定给定名称是否会在范围内(例如检查typeof module !== 'undefined'作为特定于CommonJS环境的代码中的步骤), typeof是有害的选择在变量上,正确的选择是直接比较值:

var foo = …;if (foo === undefined) {⋮
}

关于此的一些常见误解包括:

  • 读取“未初始化的”变量( var foo )或参数( function bar(foo) { … } ,称为bar() )将失败。 这根本不是真的–没有显式初始化的变量和没有给定值的参数始终变为undefined ,并且始终在范围内。

  • undefined可以被覆盖。 还有很多。 undefined不是JavaScript中的关键字。 相反,它是具有Undefined值的全局对象的属性。 但是,从ES5开始,此属性为只读不可配置 。 没有现代的浏览器将允许更改undefined属性,从2017年开始,这种情况已经存在很长时间了。 缺乏严格模式也不会影响undefined的行为-只会使undefined = 5类的语句undefined = 5而不是抛出。 但是,由于它不是关键字,因此可以使用undefined名称声明变量,并且可以更改这些变量,从而形成以下常见的模式:

     (function (undefined) { // … })() 

    比使用全局undefined 危险。 如果必须与ES3兼容,请将undefined替换为void 0 –请勿使用typeof 。 ( void一直是一元运算符,其任何操作数的计算结果均为未定义值。)

随着变量如何发挥作用,是时候解决一个实际问题:对象属性。 没有理由将typeof用于对象属性。 较早的关于特征检测的例外不适用于此处typeof仅对变量具有特殊的行为,而引用对象属性的表达式不是变量。

这个:

if (typeof foo.bar === 'undefined') {⋮
}

始终完全等于此³:

if (foo.bar === undefined) {⋮
}

并考虑到以上建议,以避免使读者对您为什么使用typeof感到困惑,因为使用===来检查相等性是最有意义的,因为以后可以将其重构为检查变量的值,并且因为它看起来比较好看,所以您也应该在此处始终使用=== undefined

关于对象属性,还需要考虑的其他事情是您是否真的要检查undefined的对象。 给定的属性名称可以不存在于对象上(在读取时产生undefined的值),可以在对象本身上显示为undefined值,可以在对象的原型上显示为undefined值,也可以在任何一个具有undefined的属性上出现值。 'key' in obj会告诉您密钥是否在对象原型链的任何位置,而Object.prototype.hasOwnProperty.call(obj, 'key')会告诉您Object.prototype.hasOwnProperty.call(obj, 'key')是否直接在对象上。 不过,我不会在这个答案中详细介绍关于原型以及将对象用作字符串键映射的原因,因为它主要是为了抵消其他答案中的所有不良建议,而与原始问题的可能解释无关。 阅读有关MDN的对象原型的更多信息!

¹示例变量名称的异常选择?这是来自Firefox的NoScript扩展的真正的死代码。
²不过,不要以为总体上不知道范围是可以的。动态范围滥用引起的额外漏洞: 零项目1225
³再次假定为ES5 +环境,并且undefined是指全局对象的undefined属性。否则将void 0替换为void 0


#9楼

"propertyName" in obj //-> true | false

#10楼

同样的事情可以写得更短:

if (!variable){//do it if variable is Undefined
}

要么

if (variable){//do it if variable is Defined
}

#11楼

所有答案都不完整。 这是知道存在“定义为未定义”属性的正确方法:

var hasUndefinedProperty = function hasUndefinedProperty(obj, prop){return ((prop in obj) && (typeof obj[prop] == 'undefined')) ;
} ;

例:

var a = { b : 1, e : null } ;
a.c = a.d ;hasUndefinedProperty(a, 'b') ; // false : b is defined as 1
hasUndefinedProperty(a, 'c') ; // true : c is defined as undefined
hasUndefinedProperty(a, 'd') ; // false : d is undefined
hasUndefinedProperty(a, 'e') ; // false : e is defined as null// And now...
delete a.c ;
hasUndefinedProperty(a, 'c') ; // false : c is undefined

不幸的是,这是正确的答案却被错误的答案掩盖了> _ <

因此,对于任何路过的人,我将免费为您提供未定义的内容!!

var undefined ; undefined ; // undefined
({}).a ;                    // undefined
[].a ;                      // undefined
''.a ;                      // undefined
(function(){}()) ;          // undefined
void(0) ;                   // undefined
eval() ;                    // undefined
1..a ;                      // undefined
/a/.a ;                     // undefined
(true).a ;                  // undefined

#12楼

通过注释,对于那些想同时检查这两个注释的对象,它是未定义的还是其值为null:

//Just in JavaScript
var s; // Undefined
if (typeof s == "undefined" || s === null){alert('either it is undefined or value is null')
}

如果您使用的是jQuery库,则jQuery.isEmptyObject()足以满足这两种情况,

var s; // Undefined
jQuery.isEmptyObject(s); // Will return true;s = null; // Defined as null
jQuery.isEmptyObject(s); // Will return true;//Usage
if (jQuery.isEmptyObject(s)) {alert('Either variable:s is undefined or its value is null');
} else {alert('variable:s has value ' + s);
}s = 'something'; // Defined with some value
jQuery.isEmptyObject(s); // Will return false;

#13楼

我想向您展示一些我正在使用的东西,以保护undefined变量:

Object.defineProperty(window, 'undefined', {});

这禁止任何人更改window.undefined值,因此会破坏基于该变量的代码。 如果使用"use strict" ,则任何试图更改其值的操作都将以错误结尾,否则将被忽略。


#14楼

如果您使用的是Angular:

angular.isUndefined(obj)
angular.isUndefined(obj.prop)

Underscore.js:

_.isUndefined(obj) 
_.isUndefined(obj.prop) 

#15楼

在JavaScript中,为null ,没有定义 。 它们具有不同的含义。

  • 未定义表示尚未定义变量值; 目前尚不清楚该值是多少。
  • null表示已定义变量值并将其设置为null(无值)。

Marijn Haverbeke在他的免费在线书“ Eloquent JavaScript ”(强调我的)中指出:

还有一个相似的值null,其含义是“已定义此值,但没有值”。 undefined和null之间的含义差异主要是学术上的,通常不是很有趣。 在实际程序中,通常有必要检查某些东西是否“有价值”。 在这些情况下,可以使用表达式something == undefined,因为即使它们的值不完全相同,null == undefined也会产生true。

因此,我认为检查某些内容是否未定义的最佳方法是:

if (something == undefined)

希望这可以帮助!

编辑:响应您的编辑,对象属性应该以相同的方式工作。

var person = {name: "John",age: 28,sex: "male"
};alert(person.name); // "John"
alert(person.fakeVariable); // undefined

#16楼

解决方法不正确。 在JavaScript中,

null == undefined

将返回true,因为它们都被“转换”为布尔值并且为false。 正确的方法是检查

if (something === undefined)

这是身份运算符...


#17楼

读完这个,我很惊讶我没看到这个。 我发现有多种算法可以解决此问题。

从未定义

如果从未定义对象的值,则如果将其定义为nullundefined ,这将防止返回true 。 如果您希望为设置为undefined值返回true,这将很有帮助

if(obj.prop === void 0) console.log("The value has never been defined");

定义为未定义或从未定义

如果希望对使用undefined或从未定义的值定义的结果为true ,则可以简单地使用=== undefined

if(obj.prop === undefined) console.log("The value is defined as undefined, or never defined");

定义为虚假值,未定义,空值或从未定义。

通常,人们要求我提供一种算法来判断值是伪造的, undefined还是null 。 以下作品。

if(obj.prop == false || obj.prop === null || obj.prop === undefined) {console.log("The value is falsy, null, or undefined");
}

#18楼

我使用if (this.variable)测试是否已定义。 if (variable) 以上推荐的 if (variable)对我来说很简单, if (variable)失败了。 事实证明,只有当变量是某个对象的字段obj.someField才能检查它是否在字典中定义时,它才起作用。 但是我们可以this window用作字典对象,因为据我所知,任何变量都是当前窗口中的一个字段。 因此,这是一个测试

 if (this.abc) alert("defined"); else alert("undefined"); abc = "abc"; if (this.abc) alert("defined"); else alert("undefined"); 

它首先检测到变量abc未定义,并且在初始化后定义。


#19楼

function isUnset(inp) {return (typeof inp === 'undefined')
}

如果设置了变量,则返回false;如果未定义,则返回true。

然后使用:

if (isUnset(var)) {// initialize variable here
}

#20楼

if ( typeof( something ) == "undefined") 

这对我有用,而其他人则没有。


#21楼

来自lodash.js。

var undefined;
function isUndefined(value) {return value === undefined;
}

它创建一个名为undefined的LOCAL变量,该变量将使用默认值-实数undefined进行初始化,然后将value与变量undefined进行比较。


更新9/9/2019

我发现lodash更新了其实现。 请参阅我的问题和代码 。

要防弹,只需使用:

function isUndefined(value) {return value === void 0;
}

#22楼

我相信对此主题有许多不正确的答案。 与通常的看法相反,“未定义” 不是 JavaScript中的关键字,实际上可以为其分配值。

正确的代码

执行此测试的最可靠方法是:

if (typeof myVar === "undefined")

这将始终返回正确的结果,甚至可以处理未声明myVar的情况。

简并代码。 不使用。

var undefined = false;  // Shockingly, this is completely legal!
if (myVar === undefined) {alert("You have been misled. Run away!");
}

此外,在未声明myVar的情况下, myVar === undefined将引发错误。


#23楼

如果定义了新变量,则有一种很好的方法来给新变量分配已定义的属性;如果未定义,则可以为其分配默认值作为后备。

var a = obj.prop || defaultValue;

如果您有一个函数,它会收到一个附加的config属性,则它是合适的:

var yourFunction = function(config){this.config = config || {};this.yourConfigValue = config.yourConfigValue || 1;console.log(this.yourConfigValue);}

现在执行

yourFunction({yourConfigValue:2});
//=> 2yourFunction();
//=> 1yourFunction({otherProperty:5});
//=> 1

#24楼

我不确定在typeof中使用===的起源是什么,并且按照惯例,我看到它在许多库中都使用过,但是typeof运算符返回的是字符串文字,而且我们很早就知道,所以为什么要这么做也想输入检查吗?

typeof x;                      // some string literal "string", "object", "undefined"
if (typeof x === "string") {   // === is redundant because we already know typeof returns a string literal
if (typeof x == "string") {    // sufficient

#25楼

采用:

if (typeof something === "undefined") {alert("something is undefined");
}

如果对象变量具有某些属性,则可以使用类似的方法:

if (typeof my_obj.someproperties === "undefined"){console.log('the property is not available...'); // print into console
}

#26楼

只是没有在JavaScript中定义的任何东西都是未定义的 ,无论是对象/数组中的属性还是简单变量都没有关系...

JavaScript具有typeof ,可以很容易地检测到未定义的变量。

只需检查typeof whatever === 'undefined'是否typeof whatever === 'undefined' ,它将返回一个布尔值。

这就是AngularJs v.1x中著名的函数isUndefined()编写方式:

function isUndefined(value) {return typeof value === 'undefined';} 

因此,如您所见,该函数接收到一个值,如果定义了该值,它将返回false ,否则,对于未定义的值将返回true

因此,让我们看一下传递值(包括如下所示的对象属性)时将得到的结果,这是我们拥有的变量的列表:

var stackoverflow = {};
stackoverflow.javascipt = 'javascript';
var today;
var self = this;
var num = 8;
var list = [1, 2, 3, 4, 5];
var y = null;

并且我们按如下方式检查它们,您可以在它们前面看到结果作为注释:

isUndefined(stackoverflow); //false
isUndefined(stackoverflow.javascipt); //false
isUndefined(today); //true
isUndefined(self); //false
isUndefined(num); //false
isUndefined(list); //false
isUndefined(y); //false
isUndefined(stackoverflow.java); //true
isUndefined(stackoverflow.php); //true
isUndefined(stackoverflow && stackoverflow.css); //true

如您所见,我们可以在代码中使用类似这样的内容进行检查,如上所述,您可以在代码中简单地使用typeof ,但是如果您一遍又一遍地使用它,请创建一个函数,例如我共享并继续重复使用的angular示例如下DRY代码模式。

还有一件事,要检查甚至不确定该对象是否存在的实际应用程序中某个对象的属性,请首先检查该对象是否存在。

如果检查对象的属性,但该对象不存在,则会引发错误并停止整个应用程序的运行。

isUndefined(x.css);
VM808:2 Uncaught ReferenceError: x is not defined(…)

如此简单,您可以将if语句包装如下:

if(typeof x !== 'undefined') {//do something
}

这也等于在Angular 1.x中定义的...

function isDefined(value) {return typeof value !== 'undefined';}

另外,其他Javascript框架(例如下划线)也具有类似的定义检查,但是如果您尚未使用任何框架,建议您使用typeof

我还从MDN中添加了此部分,该部分提供了有关typeof,undefined和void(0)的有用信息。

严格平等和不确定
您可以使用undefined以及严格的等于和不等于运算符来确定变量是否具有值。 在以下代码中,未定义变量x,并且if语句的值为true。

var x;
if (x === undefined) {// these statements execute
}
else {// these statements do not execute
}

注意:此处必须使用严格相等运算符,而不是标准相等运算符,因为x == undefined还会检查x是否为null,而严格相等则不。 null不等于未定义。 有关详细信息,请参见比较运算符。


Typeof运算符和未定义
另外,可以使用typeof:

var x;
if (typeof x === 'undefined') {// these statements execute
}

使用typeof的原因之一是,如果尚未声明变量,则不会引发错误。

// x has not been declared before
if (typeof x === 'undefined') { // evaluates to true without errors// these statements execute
}if (x === undefined) { // throws a ReferenceError}

但是,应避免这种技术。 JavaScript是一种静态作用域语言,因此可以通过查看变量是否在封闭的上下文中进行声明来了解是否声明了变量。 唯一的例外是全局范围,但是全局范围绑定到全局对象,因此可以通过检查全局对象上属性的存在来检查全局上下文中变量的存在(使用in运算符,例如)。


无效运算符和未定义

void运算符是第三种选择。

var x;
if (x === void 0) {// these statements execute
}// y has not been declared before
if (y === void 0) {// throws a ReferenceError (in contrast to `typeof`)
}

更多> 这里


#27楼

对于那些期望得到怪异答案的人,我在这里提供了三种方法:

 function isUndefined1(val) { try { val.a; } catch (e) { return /undefined/.test(e.message); } return false; } function isUndefined2(val) { return !val && val+'' === 'undefined'; } function isUndefined3(val) { const defaultVal={}; return ((input=defaultVal)=>input===defaultVal)(val); } function test(func){ console.group(`test start :`+func.name); console.log(func(undefined)); console.log(func(null)); console.log(func(1)); console.log(func("1")); console.log(func(0)); console.log(func({})); console.log(func(function () { })); console.groupEnd(); } test(isUndefined1); test(isUndefined2); test(isUndefined3); 

isUndefined1:

尝试获取输入值的属性,检查错误消息是否存在。 如果输入值未定义,则错误消息将为Uncaught TypeError:无法读取未定义的属性'b'

isUndefined2:

将输入值转换为字符串以与"undefined"进行比较,并确保其为负值。

isUndefined3:

在js中,当输入值完全undefined时,可选参数有效。


#28楼

您还可以使用Proxy,它将与嵌套调用一起使用,但需要额外检查一下:

function resolveUnknownProps(obj, resolveKey) {const handler = {get(target, key) {if (target[key] !== null &&typeof target[key] === 'object') {return resolveUnknownProps(target[key], resolveKey);} else if (!target[key]) {return resolveUnknownProps({ [resolveKey]: true }, resolveKey);}return target[key];},};return new Proxy(obj, handler);
}const user = {}console.log(resolveUnknownProps(user, 'isUndefined').personalInfo.name.something.else); // { isUndefined: true }

所以您将使用它像:

const { isUndefined } = resolveUnknownProps(user, 'isUndefined').personalInfo.name.something.else;
if (!isUndefined) {// do someting
}

#29楼

问题归结为三种情况:

  1. 对象具有属性,其值不是undefined
  2. 该对象具有属性,其值是undefined
  3. 该对象不具有该属性。

这告诉我们一些我认为重要的事情:

未定义成员与具有未定义值的已定义成员之间存在差异。

但是typeof obj.foo是, typeof obj.foo并没有告诉我们这三种情况中的哪一种。 但是,我们可以将它与"foo" in obj结合使用以区分大小写。

                               |  typeof obj.x === 'undefined' | !("x" in obj)
1.                     { x:1 } |  false                        | false
2.    { x : (function(){})() } |  true                         | false
3.                          {} |  true                         | true

值得注意的是,对于null条目,这些测试也相同

                               |  typeof obj.x === 'undefined' | !("x" in obj){ x:null } |  false                        | false

我认为在某些情况下,检查属性是否存在比检查属性是否未定义更有意义(更清楚),并且唯一的区别在于情况2,这种情况很少见。对象中具有未定义值的实际条目。

例如:我刚刚重构了一堆代码,这些代码进行了一堆检查对象是否具有给定的属性。

if( typeof blob.x != 'undefined' ) {  fn(blob.x); }

不用检查未定义就可以更清楚地看到。

if( "x" in blob ) { fn(blob.x); }

但是如上所述,它们并不完全相同(但足以满足我的需求)。


#30楼

如果你这样做

if (myvar == undefined )
{ alert('var does not exists or is not initialized');
}

当变量myvar不存在时,它将失败,因为未定义myvar,因此脚本已损坏并且测试无效。

因为窗口对象在函数外部具有全局作用域(默认对象),所以声明将“附加”到窗口对象。

例如:

var myvar = 'test';

全局变量myvarwindow.myvarwindow ['myvar']相同

为了避免在存在全局变量时测试错误,最好使用:

if(window.myvar == undefined )
{ alert('var does not exists or is not initialized');
}

变量是否确实存在的问题并不重要,其值不正确。 否则,用undefined初始化变量是愚蠢的,最好使用值false进行初始化。 当您知道声明的所有变量都用false初始化时,您可以简单地检查其类型或依靠!window.myvar来检查其是否具有正确/有效的值。 因此,即使未定义变量,对于myvar = undefinedmyvar = falsemyvar = 0 !window.myvar也是相同的。

当您需要特定类型时,请测试变量的类型。 为了加快测试条件,您最好执行以下操作:

if( !window.myvar || typeof window.myvar != 'string' )
{alert('var does not exists or is not type of string');
}

当第一个简单条件为true时,解释器将跳过下一个测试。

始终最好使用变量的实例/对象来检查它是否具有有效值。 它更稳定,是更好的编程方式。

(y)


#31楼

您可以使用以下代码获取所有未定义路径的数组。

 function getAllUndefined(object) {function convertPath(arr, key) {var path = "";for (var i = 1; i < arr.length; i++) {path += arr[i] + "->";}path += key;return path;}var stack = [];var saveUndefined= [];function getUndefiend(obj, key) {var t = typeof obj;switch (t) {case "object":if (t === null) {return false;}break;case "string":case "number":case "boolean":case "null":return false;default:return true;}stack.push(key);for (k in obj) {if (obj.hasOwnProperty(k)) {v = getUndefiend(obj[k], k);if (v) {saveUndefined.push(convertPath(stack, k));}}}stack.pop();}getUndefiend({"": object}, "");return saveUndefined;}

jsFiddle链接

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 限制input输入类型(多种方法实现)

    1.只能输入和粘贴汉字 <input onkeyup"valuevalue.replace(/[^\u4E00-\u9FA5]/g,)" onbeforepaste"clipboardData.setData(text,clipboardData.getData(text).replace(/[^\u4E00-\u9FA5]/g,))"><br/> 3.只能输入和粘贴数字 <input onkeyu…...

    2024/4/21 15:03:36
  2. angular js指令(directives)及其例子

    <!-- 第1个指令 ng-model 将表单控件和当前作用域的属性进行绑定,--><input type"text" ng-model"name" /><br>{{name}}<!-- 第2个指令 ng-init 该指令被调用时会初始化内部作用域,这个指令一般会出现在比较小的应用中--><di…...

    2024/4/21 15:03:35
  3. 说是永久双眼皮没开刀

    ...

    2024/4/21 15:03:33
  4. 谁在星源做过厦门微创广州 超微创微创埋线双眼皮是永久的吗

    ...

    2024/4/21 15:03:33
  5. 怎样双眼皮不松

    ...

    2024/4/21 15:03:31
  6. 割了双眼皮多久可以吃辣

    ...

    2024/4/21 15:03:31
  7. 眉毛往上提变割完双眼皮多久可以嫁接睫毛

    ...

    2024/4/21 15:03:29
  8. 问题

    pages.module也要引入antd的module&#xff0c;要不&#xff0c;报错 我使用的angular7.x&#xff0c;所以我用antd的7.x版本&#xff1b;用8.x有问题的。 菜单默认进来选中&#xff0c;需要一个类&#xff1a; ant-menu-item-selected // 在li上直接加上这个类就可以了>…...

    2024/4/21 15:03:29
  9. ionic3项目实战教程 - 第10讲 ionic3分类菜单设计(类似外卖)

    注意&#xff0c;干货来了&#xff0c;相比前面几讲这一讲就要难以消化多了&#xff0c;请做好心理准备。 因为在这之前&#xff0c;经常看到有群友在求这种分类菜单的组建&#xff0c;今天我就为大家再造一个轮子 [微笑脸]。 这一讲主要包含以下几个部分&#xff1a; 1.效果图…...

    2024/4/28 17:02:29
  10. WPF之 绑定

    WPF之绑定为何使用绑定Binding属性的介绍Convert和ConverterParameter绑定源绑定的模式Mode为何使用绑定 项目会越来越复杂&#xff0c;向之前的所有逻辑都集成在一个类里面已经不能够愉快的码代码了。差不多就想是面向过程到面向对象&#xff0c;再到面向切面&#xff0c;面向…...

    2024/4/24 8:14:16
  11. ngGrid checkbox应用

    $scope.mySelections []; //初始化复选框的值 $scope.gridOptions { data: LDTLInfos,//列表的原始数据rowTemplate: <div style"height: 100%"><div ng-style"{ \cursor\: row.cursor }" ng-repeat"col in renderedColumns" ng-cla…...

    2024/4/25 20:44:09
  12. CheckboxSelectionModel属性

    extjs学习之Ext.selection.CheckboxModel 2016-05-31 13:06 445人阅读 评论(0) 收藏 举报 本文章已收录于&#xff1a; Ext.onReady( function() {var storeExt.create(Ext.data.Store, {storeId:simpsonsStore,fields:[id,name,description,action],data:[{"id":1,…...

    2024/4/20 7:32:00
  13. 内双和双眼皮区别

    ...

    2024/4/21 15:03:27
  14. 看相内双眼皮和眼睛的形状

    ...

    2024/4/21 15:03:26
  15. html页面内容的收缩和展开效果

    html页面内容的收缩和展开效果 常见的网页中&#xff0c;会见到收缩和展开的效果。比如经常浏览网页里的新闻内容就会经常看到这种效果&#xff0c;新闻的内容只显示少数的一部分&#xff0c;然后后面会跟一个展开的链接&#xff0c;点击这个链接才会显示全部的新闻内容。1、收…...

    2024/5/2 16:21:33
  16. 中文技术文档的写作规范

    本文转载自 https://github.com/ruanyf/document-style-guide 中文技术文档的写作规范 文档结构文件名标题 层级原则段落 原则引用文本 字间距句子写作风格英文处理数值 半角数字千分号货币数值范围变化程度的表示法标点符号 原则句号逗号顿号分号引号圆括号冒号省略号感叹号破…...

    2024/4/27 16:16:24
  17. 软件汉化:ZoomIt v4.0(汉化版)--演示必备工具

    『软件说明』——————————————————软件名称:ZoomIt v4.0.0.0软件类别:微软放大镜 运行环境:Win2003, WinXp, Win2000, Win9x 授权方式:免费软件介绍:ZoomIt(主页|介绍)是一款非常实用的投影演示辅助工具。它源自Sysinternals公司,后来此公司被微软收购…...

    2024/5/2 7:52:54
  18. vscode常用插件+vs设置中文

    设置中文 1&#xff09;打开vscode工具&#xff1b; 2&#xff09;使用快捷键组合【CtrlShiftp】&#xff0c;在搜索框中输入“configure display language”&#xff0c;点击确定后&#xff1b; 3&#xff09;修改locale.json文件下的属性“locale”为“zh-CN”; 4&#xff09…...

    2024/4/21 15:03:22
  19. ug中英文对照

    因为安装的是ug11的中文版&#xff0c;但是看youtube的视频教学是英文版&#xff0c;所以需要中英文对照。 基本模板来自网上的资源&#xff0c;然后自己增加和修改了一些。 2DExchahge|二维转换 2DManikin|2D虚拟 3D|三维 AaaemblySepuencing|装配次序 Abort|中止 Absolute|绝…...

    2024/4/21 15:03:21
  20. 双眼皮肿胀期多久

    ...

    2024/4/21 15:03:20

最新文章

  1. 线程同步与条件变量

    再论生产消费者问题 问题 如果缓冲池为空&#xff0c;如何定义消费者的行为? 一种可能的解决方案 这种方案是可行的&#xff0c;但是如果生产者一直不生产&#xff0c;那么消费者会反复查看产品的数量为 0 并休眠&#xff0c;这样会浪费 cpu 的资源&#xff0c;并且生产者生产…...

    2024/5/2 18:18:04
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 【Easy云盘 | 第十三篇】分享模块(获取目录信息、获取文件信息、创建下载链接)

    文章目录 4.4.7获取目录信息4.4.8获取文件信息4.4.9创建下载链接 4.4.7获取目录信息 明天做 4.4.8获取文件信息 明天做 4.4.9创建下载链接 明天做...

    2024/5/1 9:08:36
  4. 【VTKExamples::Meshes】第七期 TableBasedClipDataSetWithPolyData

    很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例TableBasedClipDataSetWithPolyData,并解析接口vtkTableBasedClipDataSet,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你…...

    2024/5/1 13:33:21
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/2 9:28:15
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57