文章列表


<p>JavaScript 中函数有很多种用法,以下是其中的一些常见用法及示例: 函数声明(Function Declaration) 函数声明是最常见的定义函数的方式。使用 function 关键字定义一个函数,并给函数起一个名称。 示例:</p><pre class="brush:js;toolbar:false">function&nbsp;greet(name)&nbsp;{ &nbsp;&nbsp;console.log(`Hello,&nbsp;${name}!`); } greet(&quot;Alice&quot;);&nbsp;//&nbsp;输出:Hello,&nbsp;Alice!</pre><p>函数表达式(Function Expression) 函数表达式定义一个匿名函数,并将其赋值给一个变量。 示例:</p><pre class="brush:js;toolbar:false">const&nbsp;greet&nbsp;=&nbsp;function(name)&nbsp;{ &nbsp;&nbsp;console.log(`Hello,&nbsp;${name}!`); }; greet(&quot;Bob&quot;);&nbsp;//&nbsp;输出:Hello,&nbsp;Bob!</pre><p>箭头函数(Arrow Function) 箭头函数是 ES6 中引入的一种新的函数定义语法。它可以简化函数的书写,并且可以更方便地处理 this 指向的问题。 示例:</p><pre class="brush:js;toolbar:false">const&nbsp;greet&nbsp;=&nbsp;(name)&nbsp;=&gt;&nbsp;{ &nbsp;&nbsp;console.log(`Hello,&nbsp;${name}!`); }; greet(&quot;Charlie&quot;);&nbsp;//&nbsp;输出:Hello,&nbsp;Charlie!</pre><p>带默认参数的函数 JavaScript 中可以给函数参数设置默认值,当调用函数时没有传递参数时,将会使用默认值。 示例:</p><pre class="brush:js;toolbar:false">function&nbsp;greet(name&nbsp;=&nbsp;&quot;World&quot;)&nbsp;{ &nbsp;&nbsp;console.log(`Hello,&nbsp;${name}!`); } greet();&nbsp;//&nbsp;输出:Hello,&nbsp;World! greet(&quot;David&quot;);&nbsp;//&nbsp;输出:Hello,&nbsp;David!</pre><p>剩余参数(Rest Parameters) 剩余参数可以让我们在函数中接收一个变长参数的列表。 示例:</p><pre class="brush:js;toolbar:false">function&nbsp;sum(...numbers)&nbsp;{ &nbsp;&nbsp;return&nbsp;numbers.reduce((total,&nbsp;num)&nbsp;=&gt;&nbsp;total&nbsp;+&nbsp;num,&nbsp;0); } console.log(sum(1,&nbsp;2,&nbsp;3));&nbsp;//&nbsp;输出:6 console.log(sum(4,&nbsp;5,&nbsp;6,&nbsp;7));&nbsp;//&nbsp;输出:22</pre><p>函数作为参数 JavaScript 中的函数可以像普通变量一样被传递作为参数给另一个函数使用。 示例:</p><pre class="brush:js;toolbar:false">function&nbsp;greet(name)&nbsp;{ &nbsp;&nbsp;console.log(`Hello,&nbsp;${name}!`); } function&nbsp;greetUser(greeterFunction)&nbsp;{ &nbsp;&nbsp;greeterFunction(&quot;Emily&quot;); } greetUser(greet);&nbsp;//&nbsp;输出:Hello,&nbsp;Emily!</pre><p>函数作为返回值 JavaScript 中的函数也可以作为另一个函数的返回值。 示例:</p><pre class="brush:js;toolbar:false">function&nbsp;createGreeter(greeting)&nbsp;{ &nbsp;&nbsp;return&nbsp;function(name)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;console.log(`${greeting},&nbsp;${name}!`); &nbsp;&nbsp;}; } const&nbsp;greetInEnglish&nbsp;=&nbsp;createGreeter(&quot;Hello&quot;); greetInEnglish(&quot;Frank&quot;);&nbsp;//&nbsp;输出:Hello,&nbsp;Frank! const&nbsp;greetInFrench&nbsp;=&nbsp;createGreeter(&quot;Bonjour&quot;); greetInFrench(&quot;Gina&quot;);&nbsp;//&nbsp;输出:Bonjour,&nbsp;Gina!</pre><p>这些只是 JavaScript 中函数用法的一些常见示例,还有其他的用法,如递归函数、立即执行函数等。</p>

<p>在 JavaScript 中,变量是用来存储值的容器。变量可以是任何数据类型,如字符串、数字、布尔值、数组、对象等等。在使用变量之前,需要先声明它。声明变量可以使用 var、let 或 const 关键字。</p><p>以下是使用 var 声明变量的示例:</p><pre class="brush:bash;toolbar:false">var&nbsp;name&nbsp;=&nbsp;&quot;John&quot;;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;name&nbsp;的变量,初始值为字符串&nbsp;&quot;John&quot; var&nbsp;age&nbsp;=&nbsp;30;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;age&nbsp;的变量,初始值为数字&nbsp;30 var&nbsp;isStudent&nbsp;=&nbsp;true;&nbsp;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;isStudent&nbsp;的变量,初始值为布尔值&nbsp;true</pre><p>使用 let 声明变量与 var 类似,但 let 可以在同一作用域内多次声明同名变量,而 var 只会声明一次。</p><p>以下是使用 let 声明变量的示例:</p><pre class="brush:as3;toolbar:false">let&nbsp;name&nbsp;=&nbsp;&quot;John&quot;;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;name&nbsp;的变量,初始值为字符串&nbsp;&quot;John&quot; let&nbsp;age&nbsp;=&nbsp;30;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;age&nbsp;的变量,初始值为数字&nbsp;30 let&nbsp;isStudent&nbsp;=&nbsp;true;&nbsp;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;isStudent&nbsp;的变量,初始值为布尔值&nbsp;true</pre><p>使用 const 声明变量时,变量的值不能被重新赋值。在同一作用域内,不能使用 const 声明同名变量或使用 let 或 var 重新赋值。</p><p>以下是使用 const 声明变量的示例:</p><pre class="brush:as3;toolbar:false">const&nbsp;name&nbsp;=&nbsp;&quot;John&quot;;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;name&nbsp;的变量,初始值为字符串&nbsp;&quot;John&quot; const&nbsp;age&nbsp;=&nbsp;30;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;age&nbsp;的变量,初始值为数字&nbsp;30 const&nbsp;isStudent&nbsp;=&nbsp;true;&nbsp;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;isStudent&nbsp;的变量,初始值为布尔值&nbsp;true</pre><p>变量的值可以在使用时被重新赋值,如下所示:</p><pre class="brush:as3;toolbar:false">var&nbsp;x&nbsp;=&nbsp;5; x&nbsp;=&nbsp;10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;把&nbsp;x&nbsp;的值改为&nbsp;10</pre><p>在 JavaScript 中,变量可以被用于各种计算、逻辑和条件语句中。以下是一些示例:</p><pre class="brush:as3;toolbar:false">var&nbsp;a&nbsp;=&nbsp;5; var&nbsp;b&nbsp;=&nbsp;10; var&nbsp;sum&nbsp;=&nbsp;a&nbsp;+&nbsp;b;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;sum&nbsp;变量的值为&nbsp;15 var&nbsp;diff&nbsp;=&nbsp;b&nbsp;-&nbsp;a;</pre><p><span style="color: rgb(106, 153, 85);"></span><br/></p><p><br/></p><p><br/></p>

<p>在 JavaScript 中,变量是用来存储值的容器。变量可以是任何数据类型,如字符串、数字、布尔值、数组、对象等等。在使用变量之前,需要先声明它。声明变量可以使用 var、let 或 const 关键字。</p><p>以下是使用 var 声明变量的示例:</p><p></p><pre class="brush:bash;toolbar:false">var&nbsp;name&nbsp;=&nbsp;&quot;John&quot;;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;name&nbsp;的变量,初始值为字符串&nbsp;&quot;John&quot; var&nbsp;age&nbsp;=&nbsp;30;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;age&nbsp;的变量,初始值为数字&nbsp;30 var&nbsp;isStudent&nbsp;=&nbsp;true;&nbsp;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;isStudent&nbsp;的变量,初始值为布尔值&nbsp;true</pre><p>使用 let 声明变量与 var 类似,但 let 可以在同一作用域内多次声明同名变量,而 var 只会声明一次。</p><p>以下是使用 let 声明变量的示例:</p><p></p><pre class="brush:as3;toolbar:false">let&nbsp;name&nbsp;=&nbsp;&quot;John&quot;;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;name&nbsp;的变量,初始值为字符串&nbsp;&quot;John&quot; let&nbsp;age&nbsp;=&nbsp;30;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;age&nbsp;的变量,初始值为数字&nbsp;30 let&nbsp;isStudent&nbsp;=&nbsp;true;&nbsp;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;isStudent&nbsp;的变量,初始值为布尔值&nbsp;true</pre><p><span style="color: #6a9955;"></span><br/></p><p>使用 const 声明变量时,变量的值不能被重新赋值。在同一作用域内,不能使用 const 声明同名变量或使用 let 或 var 重新赋值。</p><p>以下是使用 const 声明变量的示例:</p><p></p><pre class="brush:as3;toolbar:false">const&nbsp;name&nbsp;=&nbsp;&quot;John&quot;;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;name&nbsp;的变量,初始值为字符串&nbsp;&quot;John&quot; const&nbsp;age&nbsp;=&nbsp;30;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;age&nbsp;的变量,初始值为数字&nbsp;30 const&nbsp;isStudent&nbsp;=&nbsp;true;&nbsp;&nbsp;&nbsp;//&nbsp;声明一个名为&nbsp;isStudent&nbsp;的变量,初始值为布尔值&nbsp;true</pre><p><span style="color: #6a9955;"></span><br/></p><p>变量的值可以在使用时被重新赋值,如下所示:</p><p></p><pre class="brush:as3;toolbar:false">var&nbsp;x&nbsp;=&nbsp;5; x&nbsp;=&nbsp;10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;把&nbsp;x&nbsp;的值改为&nbsp;10</pre><p><span style="color: #6a9955;"></span><br/></p><p>在 JavaScript 中,变量可以被用于各种计算、逻辑和条件语句中。以下是一些示例:</p><p></p><pre class="brush:as3;toolbar:false">var&nbsp;a&nbsp;=&nbsp;5; var&nbsp;b&nbsp;=&nbsp;10; var&nbsp;sum&nbsp;=&nbsp;a&nbsp;+&nbsp;b;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;sum&nbsp;变量的值为&nbsp;15 var&nbsp;diff&nbsp;=&nbsp;b&nbsp;-&nbsp;a;</pre><p><span style="color: #6a9955;"></span><br/></p><p><br/></p>

<p>JavaScript 中有一些关键字和保留字,它们具有特殊的含义或用途,不能用作变量名或标识符。</p><p>以下是 JavaScript 中的一些关键字:</p><ul class=" list-paddingleft-2" style="list-style-type: disc;"><li><p>break</p></li><li><p>case</p></li><li><p>catch</p></li><li><p>class</p></li><li><p>const</p></li><li><p>continue</p></li><li><p>debugger</p></li><li><p>default</p></li><li><p>delete</p></li><li><p>do</p></li><li><p>else</p></li><li><p>export</p></li><li><p>extends</p></li><li><p>finally</p></li><li><p>for</p></li><li><p>function</p></li><li><p>if</p></li><li><p>import</p></li><li><p>in</p></li><li><p>instanceof</p></li><li><p>let</p></li><li><p>new</p></li><li><p>return</p></li><li><p>super</p></li><li><p>switch</p></li><li><p>this</p></li><li><p>throw</p></li><li><p>try</p></li><li><p>typeof</p></li><li><p>var</p></li><li><p>void</p></li><li><p>while</p></li><li><p>with</p></li><li><p>yield</p></li></ul><p>除了这些关键字,JavaScript 还有一些保留字,虽然它们目前没有被用作关键字,但将来可能会用作关键字,因此不应该用作变量名或标识符。以下是 JavaScript 中的一些保留字:</p><ul class=" list-paddingleft-2" style="list-style-type: disc;"><li><p>enum</p></li><li><p>implements</p></li><li><p>interface</p></li><li><p>package</p></li><li><p>private</p></li><li><p>protected</p></li><li><p>public</p></li><li><p>static</p></li></ul><p>如果你使用这些关键字或保留字作为变量名或标识符,JavaScript 解释器会将其作为关键字或保留字处理,可能会导致错误或异常。因此,在编写 JavaScript 代码时,应该避免使用这些关键字和保留字作为变量名或标识符。</p><p><br/></p>

<p>&lt;noscript&gt; 元素是 HTML 中的一个标记,它用于在浏览器不支持 JavaScript 或者 JavaScript 被禁用时提供替代内容。</p><p>当浏览器不能运行 JavaScript 时,它将忽略所有包含在 &lt;script&gt; 元素内的代码,并显示 &lt;noscript&gt; 元素内的替代内容。</p><p>例如,以下示例显示了一个页面标题,并使用 &lt;noscript&gt; 元素提供了一个备选方案:</p><pre class="brush:as3;toolbar:false">&lt;!DOCTYPE&nbsp;html&gt; &lt;html&gt; &lt;head&gt; &nbsp;&nbsp;&lt;title&gt;My&nbsp;Website&lt;/title&gt; &nbsp;&nbsp;&lt;script&gt; &nbsp;&nbsp;&nbsp;&nbsp;document.title&nbsp;=&nbsp;&quot;Updated&nbsp;Title&quot;; &nbsp;&nbsp;&lt;/script&gt; &nbsp;&nbsp;&lt;noscript&gt; &nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;My&nbsp;Website&nbsp;(without&nbsp;JavaScript)&lt;/title&gt; &nbsp;&nbsp;&lt;/noscript&gt; &lt;/head&gt; &lt;body&gt; &nbsp;&nbsp;&lt;h1&gt;Welcome&nbsp;to&nbsp;my&nbsp;website&lt;/h1&gt; &nbsp;&nbsp;&lt;!--&nbsp;页面主要内容&nbsp;--&gt; &lt;/body&gt; &lt;/html&gt;</pre><p>在上面的例子中,如果浏览器支持 JavaScript,则 &lt;script&gt; 元素将更新页面标题。否则,浏览器将忽略 &lt;script&gt; 元素并显示 &lt;noscript&gt; 元素内的备选方案。备选方案的标题将包含 <span style="color: #ce9178;">&quot;(without JavaScript)&quot;</span> 后缀,这样用户就可以清楚地知道他们正在浏览未经修改的版本。</p><p>需要注意的是,如果浏览器支持 JavaScript,则 &lt;noscript&gt; 元素内的内容将被忽略,所以不要在其中包含重要的信息。&lt;noscript&gt; 元素应该只用于提供最基本的可用性和可访问性。</p><p>另外,需要注意的是,有些屏幕阅读器会跳过 &lt;noscript&gt; 元素,因此如果您依赖于该元素来提供替代内容,请确保其能够被屏幕阅读器正确处理。</p><p><br/></p>

<p>JavaScript 是一种动态类型语言,其支持以下数据类型: 字符串(String):用于表示文本数据,可以使用单引号或双引号括起来,例如:</p><pre class="brush:js;toolbar:false">let&nbsp;str1&nbsp;=&nbsp;&#39;Hello&nbsp;World&#39;; let&nbsp;str2&nbsp;=&nbsp;&quot;Welcome&nbsp;to&nbsp;JavaScript&quot;;</pre><p>数字(Number):用于表示数值数据,包括整数和浮点数,例如:</p><pre class="brush:js;toolbar:false">let&nbsp;num1&nbsp;=&nbsp;10; let&nbsp;num2&nbsp;=&nbsp;3.14;</pre><p>布尔值(Boolean):用于表示真假值,只有两个取值:true 和 false,例如:</p><pre class="brush:js;toolbar:false">let&nbsp;bool1&nbsp;=&nbsp;true; let&nbsp;bool2&nbsp;=&nbsp;false;</pre><p>空值(Null):用于表示空值或者不存在的值,例如:</p><pre class="brush:js;toolbar:false">let&nbsp;nullValue&nbsp;=&nbsp;null;</pre><p>未定义(Undefined):用于表示变量已声明但未初始化或者不存在的值,例如:</p><pre class="brush:js;toolbar:false">let&nbsp;undefinedValue&nbsp;=&nbsp;undefined;</pre><p>对象(Object):用于表示复杂数据类型,包括对象、数组、函数等,例如:</p><pre class="brush:js;toolbar:false">let&nbsp;obj&nbsp;=&nbsp;{&nbsp;name:&nbsp;&#39;John&#39;,&nbsp;age:&nbsp;30&nbsp;}; let&nbsp;arr&nbsp;=&nbsp;[1,&nbsp;2,&nbsp;3,&nbsp;4]; function&nbsp;sum(a,&nbsp;b)&nbsp;{ &nbsp;&nbsp;return&nbsp;a&nbsp;+&nbsp;b; }</pre><p>符号(Symbol):用于表示唯一的标识符,可以用于对象属性的键名,例如:</p><pre class="brush:js;toolbar:false">let&nbsp;symbol1&nbsp;=&nbsp;Symbol(&#39;foo&#39;); let&nbsp;symbol2&nbsp;=&nbsp;Symbol(&#39;foo&#39;); console.log(symbol1&nbsp;===&nbsp;symbol2);&nbsp;//&nbsp;false</pre><p>下面是一些数据类型的用法示例:</p><pre class="brush:js;toolbar:false">//&nbsp;字符串 let&nbsp;str&nbsp;=&nbsp;&#39;Hello&nbsp;World&#39;; console.log(str.length);&nbsp;//&nbsp;11 console.log(str.toUpperCase());&nbsp;//&nbsp;HELLO&nbsp;WORLD console.log(str.indexOf(&#39;World&#39;));&nbsp;//&nbsp;6 //&nbsp;数字 let&nbsp;num&nbsp;=&nbsp;3.14; console.log(num.toFixed(2));&nbsp;//&nbsp;3.14 console.log(Math.pow(2,&nbsp;3));&nbsp;//&nbsp;8 console.log(Math.sqrt(16));&nbsp;//&nbsp;4 //&nbsp;布尔值 let&nbsp;bool&nbsp;=&nbsp;true; console.log(!bool);&nbsp;//&nbsp;false console.log(bool&nbsp;&amp;&amp;&nbsp;true);&nbsp;//&nbsp;true console.log(bool&nbsp;||&nbsp;false);&nbsp;//&nbsp;true //&nbsp;空值和未定义 let&nbsp;nullValue&nbsp;=&nbsp;null; let&nbsp;undefinedValue; console.log(nullValue);&nbsp;//&nbsp;null console.log(undefinedValue);&nbsp;//&nbsp;undefined //&nbsp;对象 let&nbsp;obj&nbsp;=&nbsp;{&nbsp;name:&nbsp;&#39;John&#39;,&nbsp;age:&nbsp;30&nbsp;}; console.log(obj.name);&nbsp;//&nbsp;John console.log(obj.age);&nbsp;//&nbsp;30 console.log(obj.hasOwnProperty(&#39;name&#39;));&nbsp;//&nbsp;true let&nbsp;arr&nbsp;=&nbsp;[1,&nbsp;2,&nbsp;3,&nbsp;4]; console.log(arr.length);&nbsp;//&nbsp;4 console.log(arr[0]);&nbsp;//&nbsp;1 console.log(arr.includes(3));&nbsp;//&nbsp;true function&nbsp;sum(a,&nbsp;b)&nbsp;{ &nbsp;&nbsp;return&nbsp;a&nbsp;+&nbsp;b; } console.log(sum(1,&nbsp;2));&nbsp;//&nbsp;3 //&nbsp;符号 let&nbsp;symbol&nbsp;=&nbsp;Symbol(&#39;foo&#39;); console.log(typeof&nbsp;symbol);&nbsp;//&nbsp;symbol console.log(symbol.toString());&nbsp;//&nbsp;Symbol(foo)</pre>