JS基础之undefined与null的区别分析_javascript技巧
于是,细想之后,写下本文,请各位大侠拍砖。
总所周知:
null == undefined
但是:
null !== undefined
那么这两者到底有啥区别呢?
null
这是一个对象,但是为空。因为是对象,所以 typeof null 返回 'object' 。
null 是 JavaScript 保留关键字。
null 参与数值运算时其值会自动转换为 0 ,因此,下列表达式计算后会得到正确的数值:
表达式:123 + null结果值:123
表达式:123 * null结果值:0
undefined
undefined是全局对象(window)的一个特殊属性,其值是未定义的。但 typeof undefined 返回 'undefined' 。
虽然undefined是有特殊含义的,但它确实是一个属性,而且是全局对象(window)的属性。请看下面的代码:
alert('undefined' in window); //输出:true
var anObj = {};
alert('undefined' in anObj); //输出:false
从中可以看出,undefined是window对象的一个属性,但却不是anObj对象的一个属性。
注意:尽管undefined是有特殊含义的属性,但却不是JavaScript的保留关键字。
undefined参与任何数值计算时,其结果一定是NaN。
随便说一下,NaN是全局对象(window)的另一个特殊属性,Infinity也是。这些特殊属性都不是JavaScript的保留关键字!
提高undefined性能
当我们在程序中使用undefined值时,实际上使用的是window对象的undefined属性。
同样,当我们定义一个变量但未赋予其初始值,例如:
var aValue;
这时,JavaScript在所谓的预编译时会将其初始值设置为对window.undefined属性的引用,
于是,当我们将一个变量或值与undefined比较时,实际上是与window对象的undefined属性比较。这个比较过程中,JavaScript会搜索window对象名叫‘undefined'的属性,然后再比较两个操作数的引用指针是否相同。
由于window对象的属性值是非常多的,在每一次与undefined的比较中,搜索window对象的undefined属性都会花费时 间。在需要频繁与undefined进行比较的函数中,这可能会是一个性能问题点。因此,在这种情况下,我们可以自行定义一个局部的undefined变 量,来加快对undefined的比较速度。例如:
function anyFunc()
{
var undefined; //自定义局部undefined变量
if(x == undefined) //作用域上的引用比较
while(y != undefined) //作用域上的引用比较
};
其中,定义undefined局部变量时,其初始值会是对window.undefined属性值的引用。新定义的局部undefined变 量存在与该函数的作用域上。在随后的比较操作中,JavaScript代码的书写方式没有任何的改变,但比较速度却很快。因为作用域上的变量数量会远远少 于window对象的属性,搜索变量的速度会极大提高。
这就是许多前端JS框架为什么常常要自己定义一个局部undefined变量的原因!
希望通过本文的介绍,能给你带来帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Si vous rencontrez souvent le message d'erreur « TypeError : Cannotreadproperty'$XXX'ofundefined » lors du développement avec Vue.js, comment devez-vous le gérer ? Cet article explique les causes de cette erreur et comment y remédier. La cause du problème est que lors de l'utilisation de Vue.js, nous l'utilisons souvent pour appeler des méthodes de composants Vue, telles que : exportdefault{data()

Lors de l'écriture de code en PHP, nous pouvons rencontrer le message d'erreur « Avis : Propriété non définie ». Cette erreur signifie que nous accédons à une propriété non définie, généralement parce que la propriété n'a pas été initialisée dans le code. Alors, comment résoudre ce problème ? Voici quelques solutions possibles : Initialiser les propriétés C'est la manière la plus simple de résoudre ce problème. L'initialisation explicite d'une propriété dans le code garantit qu'elle est définie avant utilisation. Par exemple : classe

En JavaScript, non défini et null représentent le concept de « rien » : 1. undéfini représente une variable non initialisée ou une propriété inexistante lorsqu'une variable est déclarée mais qu'aucune valeur ne lui est attribuée, la valeur de la variable est undéfinie. lors de l'accès à des propriétés qui n'existent pas dans l'objet, la valeur renvoyée est également indéfinie ; 2. null représente une référence d'objet vide Dans certains cas, la référence d'objet peut être définie sur null pour libérer la mémoire qu'elle occupe.

La différence entre null et NULL en langage C est la suivante : null est une définition de macro en langage C, généralement utilisée pour représenter un pointeur nul, qui peut être utilisé pour initialiser des variables de pointeur ou pour déterminer si le pointeur est nul dans une instruction conditionnelle ; NULL est une définition de macro en langage C. Une constante prédéfinie dans , généralement utilisée pour représenter une valeur nulle, utilisée pour représenter un pointeur nul, un tableau de pointeurs nuls ou un pointeur de structure nulle.

undefined représente un état dans lequel une valeur ou une variable n'existe pas ou n'est pas définie. Il peut être utilisé comme valeur par défaut pour déterminer si une variable a reçu une valeur et peut également être utilisé pour définir les valeurs de paramètres par défaut. Bien qu'indéfini puisse avoir des significations et des usages différents dans différents langages de programmation, comprendre le concept d'indéfini peut nous aider à mieux comprendre et écrire des programmes.

Null et indéfini indiquent tous deux un manque de valeur ou un état indéfini. Selon le scénario d'utilisation, il existe quelques principes directeurs pour choisir d'utiliser null ou undefined : 1. Lorsque vous devez indiquer clairement qu'une variable est vide ou non valide. peut utiliser null ; 2. Lorsqu'une variable a été déclarée mais qu'aucune valeur n'a encore été attribuée, elle sera définie sur non définie par défaut. 3. Lorsque vous devez vérifier si une variable est vide ou non définie, utilisez l'opérateur d'égalité stricte "= ; ==" pour déterminer si la variable est nulle ou indéfinie. .

La différence entre null et non défini est : 1. Signification sémantique ; 2. Scénarios d'utilisation ; 3. Comparaison avec d'autres valeurs ; 4. Relation avec les paramètres de fonction ; . Performances dans la sérialisation JSON ; 9. Relation avec les types. Introduction détaillée : 1. Signification sémantique, null signifie généralement savoir que cette variable n'aura aucune valeur d'objet valide, tandis qu'undéfini signifie généralement que la variable n'a pas reçu de valeur ou que l'objet n'a pas cet attribut ; , etc.

Dans le langage Go, le package path est l'un des outils importants pour le traitement des chemins de fichiers. La fonction path.Join() peut combiner plusieurs chemins en un chemin complet. Cependant, vous rencontrerez parfois le message d'erreur « undéfini : chemin.Join », que devez-vous faire ? Voici plusieurs solutions courantes : Vérifiez l'instruction d'importation. Tout d'abord, vous devez confirmer que vous avez correctement importé le package de chemin. En langage Go, lors de l'import d'un package, vous pouvez
