💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
# ES6函数写法 **1、函数参数的默认值** 函数的参数支持默认值,如果有多个值,要传参时,只能省略最后一个 ``` <pre class="calibre10">``` <span class="token5">function</span> <span class="token4">str</span><span class="token3">(</span>x<span class="token1">=</span><span class="token6">10</span><span class="token3">,</span>y<span class="token1">=</span><span class="token6">20</span><span class="token3">)</span> <span class="token3">{</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>x<span class="token3">,</span> y<span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span><span class="token3">;</span> <span class="token4">str</span><span class="token3">(</span><span class="token6">100</span><span class="token3">)</span><span class="token3">;</span><span class="token">//100 20</span> ``` ``` 如果非要传y,可采用对象的形式来写 ``` <pre class="calibre10">``` <span class="token5">function</span> <span class="token4">str</span><span class="token3">(</span><span class="token3">{</span>x<span class="token3">,</span>y<span class="token1">=</span><span class="token6">20</span><span class="token3">}</span><span class="token3">)</span> <span class="token3">{</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>x<span class="token3">,</span> y<span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span> <span class="token">//str();//报错</span> <span class="token">//str({y:50});//undefined 50</span> <span class="token4">str</span><span class="token3">(</span><span class="token3">{</span><span class="token3">}</span><span class="token3">)</span><span class="token3">;</span><span class="token">//undefined 20 x没有默认值会输出undefined</span> ``` ``` **2、函数参数的rest参数 把剩余的参数包装到数组里** ``` <pre class="calibre10">``` <span class="token5">function</span> <span class="token4">arr</span><span class="token3">(</span>x<span class="token3">,</span>y<span class="token3">,</span><span class="token3">.</span><span class="token3">.</span><span class="token3">.</span>args<span class="token3">)</span> <span class="token3">{</span> <span class="token">//console.log(x);//1</span> <span class="token">//console.log(y);//2</span> <span class="token">//console.log(args);//[3,4,5]</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>arguments<span class="token3">)</span><span class="token3">;</span><span class="token">//实参个数 是object对象,也是伪数组,不能使用数组的方法</span> args<span class="token3">.</span><span class="token4">forEach</span><span class="token3">(</span><span class="token5">function</span> <span class="token3">(</span>item<span class="token3">,</span>i<span class="token3">)</span> <span class="token3">{</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>item<span class="token3">)</span><span class="token3">;</span><span class="token">//3 4 5</span> <span class="token3">}</span><span class="token3">)</span> <span class="token3">}</span> <span class="token4">arr</span><span class="token3">(</span><span class="token6">1</span><span class="token3">,</span><span class="token6">2</span><span class="token3">,</span><span class="token6">3</span><span class="token3">,</span><span class="token6">4</span><span class="token3">,</span><span class="token6">5</span><span class="token3">)</span> ``` ``` 3、箭头函数 有两种函数的写法 函数的声明–>箭头函数不能用于有名函数 函数的表达式 ``` <pre class="calibre10">``` let add <span class="token1">=</span> <span class="token3">(</span>x<span class="token3">,</span>y<span class="token3">)</span> <span class="token1">=</span><span class="token1">></span> <span class="token3">{</span> <span class="token5">return</span> x<span class="token1">+</span>y<span class="token3">;</span> <span class="token3">}</span> <span class="token">//let add = (x,y) => x+y;</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span><span class="token4">add</span><span class="token3">(</span><span class="token6">10</span><span class="token3">,</span> <span class="token6">20</span><span class="token3">)</span><span class="token3">)</span><span class="token3">;</span><span class="token">//30</span> <span class="token">//等效</span> <span class="token5">function</span> <span class="token4">add</span><span class="token3">(</span>x<span class="token3">,</span>y<span class="token3">)</span><span class="token3">{</span><span class="token5">return</span> x<span class="token1">+</span>y<span class="token3">;</span><span class="token3">}</span> ``` ``` 简写:只有一个参数,可以省略() ``` <pre class="calibre10">``` let add <span class="token1">=</span> x <span class="token1">=</span><span class="token1">></span><span class="token3">{</span><span class="token5">return</span> x<span class="token3">;</span><span class="token3">}</span> <span class="token">//let add = x =>x;</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span><span class="token4">add</span><span class="token3">(</span><span class="token6">50</span><span class="token3">)</span><span class="token3">)</span><span class="token3">;</span><span class="token">//50</span> <span class="token">//等效</span> <span class="token5">function</span> <span class="token4">add</span><span class="token3">(</span>x<span class="token3">)</span><span class="token3">{</span><span class="token5">return</span> x<span class="token3">;</span><span class="token3">}</span> ``` ``` 简写:当函数体只有一条语句时,后面表达式的值直接可以作为返回值 ``` <pre class="calibre10">``` let add <span class="token1">=</span> <span class="token3">(</span>x<span class="token3">,</span>y<span class="token3">)</span> <span class="token1">=</span><span class="token1">></span> x<span class="token1">+</span>y<span class="token3">;</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span><span class="token4">add</span><span class="token3">(</span><span class="token6">10</span><span class="token3">,</span> <span class="token6">20</span><span class="token3">)</span><span class="token3">)</span><span class="token3">;</span><span class="token">//30</span> <span class="token">//等效</span> <span class="token5">function</span> <span class="token4">add</span><span class="token3">(</span>x<span class="token3">,</span>y<span class="token3">)</span><span class="token3">{</span><span class="token5">return</span> x<span class="token1">+</span>y<span class="token3">;</span><span class="token3">}</span> ``` ``` 匿名函数: ``` <pre class="calibre10">``` var arr <span class="token1">=</span> <span class="token3">[</span><span class="token6">1</span><span class="token3">,</span><span class="token6">2</span><span class="token3">,</span><span class="token6">3</span><span class="token3">,</span><span class="token6">4</span><span class="token3">]</span><span class="token3">;</span> <span class="token">//function(){}</span> arr<span class="token3">.</span><span class="token4">forEach</span><span class="token3">(</span><span class="token5">function</span> <span class="token3">(</span>item<span class="token3">,</span>i<span class="token3">)</span> <span class="token3">{</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>item<span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span><span class="token3">)</span> <span class="token">//es6:</span> <span class="token">//()=>{}</span> arr<span class="token3">.</span><span class="token4">forEach</span><span class="token3">(</span><span class="token3">(</span>item<span class="token3">,</span>i<span class="token3">)</span> <span class="token1">=</span><span class="token1">></span> <span class="token3">{</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>item<span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span><span class="token3">)</span> <span class="token">//简写:x=>x省略括号(一个参数,当函数体只有一条语句时)</span> arr<span class="token3">.</span><span class="token4">forEach</span><span class="token3">(</span>item <span class="token1">=</span><span class="token1">></span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>item<span class="token3">)</span><span class="token3">)</span><span class="token3">;</span> ``` ``` 4、箭头函数中的this ``` <pre class="calibre17">``` <span class="token">//es5:</span> <span class="token5">function</span> <span class="token4">F</span><span class="token3">(</span><span class="token3">)</span> <span class="token3">{</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>this<span class="token3">)</span><span class="token3">;</span><span class="token">//实例对象F</span> var that <span class="token1">=</span> this<span class="token3">;</span> <span class="token4">setTimeout</span><span class="token3">(</span><span class="token5">function</span> <span class="token3">(</span><span class="token3">)</span> <span class="token3">{</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>this<span class="token3">)</span><span class="token3">;</span><span class="token">//window</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>that<span class="token3">)</span><span class="token3">;</span><span class="token">//实例对象F</span> <span class="token3">}</span><span class="token3">,</span><span class="token6">100</span><span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span><span class="token3">;</span> var per <span class="token1">=</span> <span class="token5">new</span> <span class="token4">F</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> <span class="token5">function</span> <span class="token4">Fo</span><span class="token3">(</span><span class="token3">)</span> <span class="token3">{</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>this<span class="token3">)</span><span class="token3">;</span><span class="token">//实例对象Fo</span> var that <span class="token1">=</span> this<span class="token3">;</span> <span class="token4">setTimeout</span><span class="token3">(</span><span class="token5">function</span> <span class="token3">(</span><span class="token3">)</span> <span class="token3">{</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>this<span class="token3">)</span><span class="token3">;</span><span class="token">//window</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>that<span class="token3">)</span><span class="token3">;</span><span class="token">//实例对象Fo</span> <span class="token3">}</span><span class="token3">.</span><span class="token4">bind</span><span class="token3">(</span>this<span class="token3">)</span><span class="token3">,</span><span class="token6">100</span><span class="token3">)</span><span class="token3">;</span> <span class="token3">}</span><span class="token3">;</span> var per1 <span class="token1">=</span> <span class="token5">new</span> <span class="token4">Fo</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> <span class="token">//es6:</span> <span class="token5">function</span> <span class="token4">Foo</span><span class="token3">(</span><span class="token3">)</span> <span class="token3">{</span> <span class="token4">setTimeout</span><span class="token3">(</span><span class="token3">(</span><span class="token3">)</span> <span class="token1">=</span><span class="token1">></span> <span class="token3">{</span> console<span class="token3">.</span><span class="token4">log</span><span class="token3">(</span>this<span class="token3">)</span><span class="token3">;</span><span class="token">////实例对象Foo</span> <span class="token3">}</span><span class="token3">,</span><span class="token6">1000</span><span class="token3">)</span> <span class="token3">}</span> var per2 <span class="token1">=</span> <span class="token5">new</span> <span class="token4">Foo</span><span class="token3">(</span><span class="token3">)</span><span class="token3">;</span> ``` ```