ES6函数的个人总结】的更多相关文章

前面的话 函数是所有编程语言的重要组成部分,在ES6出现前,JS的函数语法一直没有太大的变化,从而遗留了很多问题和的做法,导致实现一些基本的功能经常要编写很多代码.ES6大力度地更新了函数特性,在ES5的基础上进行了许多改进,使用JS编程可以更少出错,同时也更加灵活.本文将详细介绍ES6函数扩展 形参默认值 Javascript函数有一个特别的地方,无论在函数定义中声明了多少形参,都可以传入任意数量的参数,也可以在定义函数时添加针对参数数量的处理逻辑,当已定义的形参无对应的传入参数时为其指定一个…
× 目录 [1]参数默认值 [2]rest参数 [3]扩展运算符[4]箭头函数 前面的话 ES6标准关于函数扩展部分,主要涉及以下四个方面:参数默认值.rest参数.扩展运算符和箭头函数 参数默认值 一般地,为参数设置默认值需进行如下设置 function log(x, y) { y = y || 'World'; console.log(x, y); } 但这样设置实际上是有问题的,如果y的值本身是假值(包括false.undefined.null.''.0.-0.NaN),则无法取得本身值…
我们知道JS函数内部有个arguments对象,可以拿到全部实参.现在ES6给我们带来了一个新的对象,可以拿到除开始参数外的参数,即剩余参数(废话好多 O(∩_∩)O~). 这个新的对象和arguments不一样,它是程序员自定义的一个普通标识符,只是需要在前面加上三个点:... function func(a, ...rest) { console.log(a) console.log(rest) } func(1) func(1, 2, 3, 4) 注意func的第二个参数rest,前面有三…
语言更新时每一个新增的特性都是从千百万开发者需求里提取过来的,规范采用后能减少程序员的痛苦,带来便捷. 我们经常会这么写 function calc(x, y) { x = x || 0; y = y || 0; // to do with x, y // return x/y } 简单说就是x,y提供了一个默认值为0,不传时x, y以值0来运算.传了就以实际值计算. 又如定义一个ajax function ajax(url, async, dataType) { async = async !…
es6的新特性对函数的功能新增加了rest参数和...的拓展运算符.这是两个什么东西呢? 先来看一个问题:如何获取一个函数除了定义的参数之外的其他参数?传统的做法是借助函数的arguments关键字来获取的. 方法如下: function add(a,b){ var i=2,rest=[]; if(arguments.length>2){ for(i;i<arguments.length;i++){ rest.push(arguments[i]); } } return rest; } con…
ES里面现在支持在函数的参数直接给参数赋一个默认值,ES6支持拓展运算符(...)三个英文的点,这个形式如function(...a)这个里面...a可以接受若干的值,这个拓展运算符也可以把若干的值转换为一个数组,也可以用来把字符串或类数组的对象转换为数组,如果把拓展运算符用于数组赋值只能放在末尾!!! 拓展运算符的示例代码 function add(...values) { let sum = 0 ; for(var val of values){ sum = sum + val; } ret…
1. 函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,为了避免这个问题,通常需要先判断一下参数y是否被赋值,如果没有,再等于默认值. ES6允许为函数的参数设置默认值,即直接写在参数定义的后面. function log(x, y = 'World') { console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // He…
箭头函数 基本用法 ES6允许使用"箭头"(=>)定义函数 var f = v => v; 上面的箭头函数等同于: var f = function(v) { return v; }; 如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分. var f = () => 5; // 等同于 var f = function () { return 5 }; var sum = (num1, num2) => num1 + num2; // 等同于 v…
8.2 rest参数 ES6引入rest参数(形式为"-变量名"),用于获取函数的多余参数,这样就不需要使用arguments对象了. arguments对象并没有数组的方法,rest参数搭配的变量是一个数组. function add(...values){ let sum = 0; for(let val of values){ sum += val; } return sum; } add(3, 4, 5); rest参数中的变量代表一个数组,所以数组特有的方法都可以用于这个变量…
1. 函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,为了避免这个问题,通常需要先判断一下参数y是否被赋值,如果没有,再等于默认值. ES6允许为函数的参数设置默认值,即直接写在参数定义的后面. function log(x, y = 'World') { console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // He…
函数参数可以拥有默认值.调用函数时,如果没有进行相应的实参传递,参数就会使用默认值.怎么给参数提供默认值呢?很简单,声明函数时候,给形参赋一个值就可以了,这个值就是参数的默认值. // num2拥有默认参数值5,如果没有给num2形参传值,它的取值将会是5 function sum (num1, num2 = 5) { return num1 + num2; } console.log(sum(1)) // 6 调用sum函数时, 只传递了一个参数1,所以函数中num1 =1, num2就会使用…
函数参数的扩展 默认参数 基本用法 function fn(name,age=17){ console.log(name+","+age); } fn("Amy",18); // Amy,18 fn("Amy",""); // Amy, fn("Amy"); // Amy,17 注意点:使用函数默认参数时,不允许有同名参数. // 不报错 function fn(name,name){ console.lo…
//ES5中的函数的定义 var fn=function(){ console.log(111); } //ES6中函数的定义 let fn=()=>{ console.log(222); } //多个形参 let fn=(a,b)=>{ console.log(a+b); } //一个形参 let fn=a=>{ console.log(a); } //方法体只有一行代码 let fn=b=>console.log(888);…
扩展运算符 含义 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. 扩展运算符的应用 (1)合并数组 // ES5 [1, 2].concat(more) // ES6 [1, 2, ...more] var arr1 = ['a', 'b']; var arr2 = ['c']; var arr3 = ['d', 'e']; // ES5的合并数组 arr1.concat(arr2, arr3); // [ 'a', 'b',…
1. 可添加默认参数 function fn(name,age=17){ console.log(name+","+age); } fn("Amy",18); // Amy,18 f n("Amy",""); // Amy, fn("Amy"); // Amy,17 注意点:使用函数默认参数时,不允许有同名参数,否则报错: 但是不使用默认参数时,多个同名形参不报错. 只有在未传递参数,或者参数为 undef…
ES6 引入 rest 参数(形式为...变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了.rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中. function add(...values) { let sum = 0; for (var val of values) { sum += val; } return sum; } add(2, 5, 3) 上面代码的add函数是一个求和函数,利用 rest 参数,可以向该函数传入任意数目的参数. 下面是一个…
基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采取变通的方法. function log(x,y){ y = y||'world'; console.log(x,y); } log('kkk');//kkk world 这种写法的缺点在于: 如果参数y赋值了,但是对应的布尔值为false,则该赋值不起作用.如果在调用函数的时候,传入的y参数是一个空字符串,那么y就会被修改为默认值. 避免这个问题,需要先判断一下:1.通过判断值是否等于undefined,2.判断arguments.…
原文地址 箭头函数=>无疑是ES6中最受关注的一个新特性了,通过它可以简写 function 函数表达式,你也可以在各种提及箭头函数的地方看到这样的观点--"=> 就是一个新的 function". 箭头函数的句法规则甚至早已延伸到各项标准和技术文档中去了,虽然它早已不稀奇,却给我们一种刚刚发现的新鲜感. 粉我的人都知道俺因为某些原因不怎么喜欢 => 的语法,不过别担心,本文并非讲述我为何不喜欢它,如果你对这个观点感兴趣,可以查看我<YDKJS:ES6 &…
一.函数参数默认值中模糊的独立作用域 我在ES6入门学习函数拓展这一篇博客中有记录,当函数的参数使用默认值时,参数会在初始化过程中产生一个独立的作用域,初始化完成作用域会消失:如果不使用参数默认值,不会产生这个作用域:产生疑问是因为这段代码: var x = 1; function foo(x, y = function () {x = 2;}) { var x = 3; y(); console.log(x); }; foo(); foo(4); console.log(x); 老实说,关于这…
一.参数带默认值函数1.在函数形参可以赋予函数默认值[即实参严格匹配undefined时,在函数内部使用形参时调用它的默认值]2.函数name属性 [返回函数名称,无名的函数返回空字符串]3.函数length属性  [从左往右开始计算函数形参直到碰到带有默认值形参时结束计算,这样计算的形参个数]eg: //普通函数传参 function test(a,b=2,c,d=3){ console.log(a,b,c,d); } test(3,4,5); //输出abcd分别为:3,4,5,3 cons…
es6的变量解构赋值很方便,那具体有哪些用途呢? 1.变换变量的值 let n = 10; let m = 20; [n, m] = [m, n] 这样n , m 的值 会互换, 即:n = 20, m = 10, 这种写法简洁,易读,语义清晰. 2.从函数返回多个值 函数只能返回一个值,如果要返回多个值,只能将它们放在数组或者对象里返回,有了解构赋值,取出这些值就非常方便. // 返回一个数组 function example() { return [1, 2, 3] } let [a, b,…
函数参数默认值 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // Hello World 面代码检查函数log的参数y有没有赋值,如果没有,则指定默认值为World.这种写法的缺点在于,如果参…
默认参数: 1. 在 ES5 语法中,为函数形参指定默认值的写法: 写法一: function foo (bar) { bar = bar || 'abc'; console.log(bar) } foo('xyz') 写法二: function foo (bar) { if (typeof bar === 'undefined') { bar = 'abc'; } console.log(bar) } foo('xyz'); 2.  使用 ES6 的语法为函数形参指定默认值 function…
一.声明 1. let(变量) 可以只声明不给值(默认为undefined),或者是先声明后给值,但是必需声明后再使用,可以重复赋值,可以防止变量泄露: 同一作用域里不能重复的声明,不同作用域里可以,不会被预解析: 声明的变量不再属于window的属性 2. const(常量) 必需先声明后使用,声明的时候必需要赋值:声明后不能进行修改,但是const声明的对象中的属性可以修改: 同一作用域里不能重复的声明,不同作用域里可以,不会被预解析: 具有块级作用域,声明的变量不再属于window的属性…
之前在看Vue2.0的时候,就被很多的箭头函数困扰,一直不知道是怎么回事,虽然箭头函数四个字在我耳边一直转圈,今天小编整理整理箭头函数里面的常见用法和表现形式,在这个Vue3.0已经到来的一段时间,希望大家也可以一起搭上箭头函数的大风飞起来.大家也可以关注我的微信公众号,蜗牛全栈. 一.es5中函数的声明方式 function sum(x,y){ return x + y } console.log(sum(4,5)) // 9 let sum = function(x,y){ return x…
箭头函数 箭头函数提供了一种更加简洁的函数书写方式.基本语法是 参数 => 函数体 基本用法: var f = v => v; //等价于 var f = function(a){ return a; } f(1); //1 当箭头函数没有参数或者有多个参数,要用 () 括起来 var f = (a,b) => a+b; f(6,2); //8 当箭头函数函数体有多行语句,用 {} 包裹起来,表示代码块,当只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回. var f…
函数的默认值 function(x,y=10){ //赋予了y就有了默认值为10,如果y赋值了,就回被覆盖,否则就是默认值10 变量已经有默认值了,所以不用再次用let或者const声明啦 }…
初步学习: 函数参数允许尾逗号 function clownsEverywhere( param1, param2, //param2后面有逗号 ) { } 函数参数可以赋初值 利用解构赋值默认值结合使用 函数的 length 属性 失真 ,是指没有赋初值的函数参数个数 name 属性 函数的name属性返回该函数名 箭头函数,我理解=> 后面就是返回值,如果有多个参数,就用()括起来: 如:var add=(val1,val2)=>val1+val2; ()函数体内的this对象,就是定义时…
函数的参数: 1.参数扩展/数组展开      1)收集(剩余的)参数          function show(a,b,...args){}   // 三点运算符           *Rest Parameter 必须是最后一个  function show(a,b,...args){ alert(a); alert(b); alert(args); } show(12,15,8,9,20); //输出: // // // 8,9,20 2)数组展开        *展开后的效果跟直接把…
箭头函数: 1.普通函数 function 函数名(){...} 2.箭头函数 注意:  1)如果只有一个返回值,{}return可以省略: let arr = [12,5,8,99,33,14,26]; arr.sort(function(a,b){ return a-b; //从小到大输出 = 数组顺序输出 }); alert(arr); // 输出:5,8,12,14,26,33,99 // 箭头函数:let arr = [12,5,8,99,33,14,26]; arr.sort((a,…