<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>解构赋值 on Last Stand</title><link>https://amatsuzero.github.io/LastStand/tags/%E8%A7%A3%E6%9E%84%E8%B5%8B%E5%80%BC/</link><description>Recent content in 解构赋值 on Last Stand</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 17 Dec 2024 00:00:00 +0800</lastBuildDate><atom:link href="https://amatsuzero.github.io/LastStand/tags/%E8%A7%A3%E6%9E%84%E8%B5%8B%E5%80%BC/index.xml" rel="self" type="application/rss+xml"/><item><title>解构赋值</title><link>https://amatsuzero.github.io/LastStand/posts/frontend/es6/es6-005/</link><pubDate>Wed, 02 Oct 2024 00:00:00 +0800</pubDate><guid>https://amatsuzero.github.io/LastStand/posts/frontend/es6/es6-005/</guid><description>&lt;h2 id="解构赋值概念"&gt;解构赋值概念&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;解构赋值&lt;/strong&gt;语法是一种 Javascript 表达式。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;通过解构赋值，可以将属性/值从对象/数组中取出,赋值给其他变量。&lt;/li&gt;
&lt;li&gt;解构赋值是通过将结构中的各元素复制到变量中来达到“解构”的目的。但对象/数组本身不会被修改。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="数组解构"&gt;数组解构&lt;/h2&gt;
&lt;h3 id="基本使用"&gt;基本使用&lt;/h3&gt;
&lt;p&gt;📖 可以在定义变量的同时，使用解构进行赋值&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;let [one, two, three] = foo;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;//等同于
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;let one = foo[0];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;let two = foo[1];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;let three = foo[2];
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/es6/es6-005/image-01.webp"&gt;&lt;/p&gt;
&lt;p&gt;📖 也可以先声明变量，在进行解构赋值&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/es6/es6-005/image-02.webp"&gt;&lt;/p&gt;
&lt;h3 id="设置默认值"&gt;设置默认值&lt;/h3&gt;
&lt;p&gt;当【左边≠右边】时，可以先设置一个默认值，否则取不到值的变量会变成undefined&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/es6/es6-005/image-03.webp"&gt;&lt;/p&gt;
&lt;h3 id="剩余值处理"&gt;剩余值处理&lt;/h3&gt;
&lt;p&gt;可以使用三个点 &lt;code&gt;&amp;quot;...&amp;quot;&lt;/code&gt;+ 参数来接收剩余的所有元素，变量名称随意，必须在最后一个参数的位置上&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/es6/es6-005/image-04.webp"&gt;&lt;/p&gt;
&lt;h3 id="进阶用法"&gt;进阶用法&lt;/h3&gt;
&lt;p&gt;🎨 可以和&lt;code&gt;split&lt;/code&gt; 函数结合使用，比如&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;let [Mother,Father] = &amp;#34;judy,pete&amp;#34;.split(&amp;#39;,&amp;#39;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;console.log(Mother) //judy
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;console.log(Father) //pete
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;🎨 可以使用逗号忽略元素，比如&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;let [name1,,name3] = [&amp;#34;Julius01&amp;#34;, &amp;#34;Caesar02&amp;#34;, &amp;#34;Consul03&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/es6/es6-005/image-05.webp"&gt;&lt;/p&gt;
&lt;p&gt;🎨 可以直接赋值给对象的属性，比如&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;let user = {};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[user.name, user.surname] = [&amp;#34;Ilya&amp;#34;,&amp;#34;Kantor&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" src="https://amatsuzero.github.io/LastStand/posts/frontend/es6/es6-005/image-06.webp"&gt;&lt;/p&gt;</description></item></channel></rss>