Javascript中的函数声明与函数表达式(奇技淫巧)_javascript技巧
举一个例子:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
试一下就知道这段代码的意思就是声明一个函数,然后立刻执行,因为Javascript中的变量作用域是基于函数的,所以这样可以避免变量污染,但这里的位运算符“~”乍一看让人摸不到头脑,如果去掉它再运行则会报错:SyntaxError。
在阐述为什么之前,让我们先来明确Javascript中的两个概念:函数声明和函数表达式:
先来看看什么样的是函数声明:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
再来看看什么样的是函数表达式:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
现在回头看看文章开头的问题,为什么去掉位操作符“~”后运行会报错,这是因为从语法解析的角度看,Javascript不允许在函数声明的后面直接使用小括号,而函数表达式则没有这个限制,通过在函数声明前面加上一个“~”操作符,就可以让语法解析器把后面看成是函数表达式,同样的,在函数声明前面加上“!,+,-”等操作符也是可行的。
那我们为什么不使用下面这种函数表达式的方式呢?
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
虽然从语法解析的角度看没有问题,但是上面的代码存在弊端,它引入了一个变量,可能会污染现有的运行环境,带来潜在的问题。
使用位操作符“~”的方法多少显得有点奇技淫巧,其实把函数声明用小括号套起来更易读:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
弄明白了原理,不管遇到什么写法,都不会再丈二和尚摸不着头脑了。

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

Les paramètres par défaut en C++ offrent la possibilité de spécifier des valeurs par défaut pour les paramètres de fonction, améliorant ainsi la lisibilité, la simplicité et la flexibilité du code. Déclarez les paramètres par défaut : ajoutez le symbole "=" après le paramètre dans la déclaration de la fonction, suivi de la valeur par défaut. Utilisation : Lorsque la fonction est appelée, si des paramètres facultatifs ne sont pas fournis, les valeurs par défaut seront utilisées. Cas pratique : Une fonction qui calcule la somme de deux nombres. Un paramètre est obligatoire et l'autre est facultatif et a une valeur par défaut de 0. Avantages : lisibilité améliorée, flexibilité accrue, code passe-partout réduit. Remarque : Il ne peut être spécifié que dans la déclaration, il doit être à la fin et les types doivent être compatibles.

En C++, l'ordre des déclarations et des définitions de fonctions affecte le processus de compilation et de liaison. Le plus courant est que la déclaration vient en premier et la définition après ; vous pouvez également utiliser « forwarddeclaration » pour placer la définition avant la déclaration ; si les deux existent en même temps, le compilateur ignorera la déclaration et n'utilisera que la définition.

Une déclaration de fonction informe le compilateur de l'existence de la fonction et ne contient pas l'implémentation, qui est utilisée pour la vérification de type. La définition de fonction fournit l'implémentation réelle, y compris le corps de la fonction. Les principales caractéristiques distinctives comprennent : l’objectif, l’emplacement et le rôle. Comprendre les différences est crucial pour écrire du code C++ efficace et maintenable.

La déclaration et la définition de fonction sont nécessaires en C++. La déclaration de fonction spécifie le type de retour, le nom et les paramètres de la fonction, tandis que la définition de fonction contient le corps et l'implémentation de la fonction. Déclarez d’abord la fonction, puis utilisez-la dans votre programme en passant les paramètres requis. Utilisez l'instruction return pour renvoyer une valeur d'une fonction.

Erreur de compilation C++ : l'appel de fonction ne correspond pas à la déclaration de fonction, comment la résoudre ? Lors du développement de programmes C++, vous rencontrerez inévitablement des erreurs de compilation. L'une des erreurs courantes est que l'appel de fonction ne correspond pas à la déclaration de fonction. Ce type d'erreur est largement répandu parmi les programmeurs C++. En raison du fait qu'ils ne prêtent pas attention à l'exactitude de la déclaration des fonctions, cela entraîne des problèmes de compilation, ce qui fait finalement perdre du temps et de l'énergie à résoudre le problème et affecte l'efficacité du développement. Les moyens d’éviter cette erreur nécessitent de suivre certaines normes et pratiques standards, examinons-les ci-dessous. Qu'est-ce qu'un appel de fonction par rapport à une déclaration de fonction ?
![[[nodiscard]] dans les déclarations de fonctions C++ : démystifier les conséquences de l'ignorance des valeurs de retour](https://img.php.cn/upload/article/000/465/014/171455868319393.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
L'attribut [[nodiscard]] indique que la valeur de retour de la fonction ne doit pas être ignorée, sinon cela provoquera un avertissement ou une erreur du compilateur pour éviter les conséquences suivantes : exceptions non initialisées, fuites de mémoire et résultats de calcul incorrects.

La syntaxe de déclaration de fonction C++ est la suivante : returnTypefunctionName(parameterType1parameterName1,...,parameterTypeNparameterNameN);, où returnType est le type de retour, functionName est le nom de la fonction, ParameterType est le type de paramètre et ParameterName est le nom du paramètre, qui doit se terminer par un point-virgule.

Une déclaration de fonction indique au compilateur qu'une fonction existe sans fournir de corps de fonction. Les étapes sont les suivantes : spécifier le type de retour de la fonction (void s'il n'y a pas de valeur de retour) définir le nom de la fonction et déclarer les paramètres de la fonction (facultatif, y compris le type de données et l'identifiant) plus un point-virgule
