ES6函数参数】的更多相关文章

基本用法 在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入门学习函数拓展这一篇博客中有记录,当函数的参数使用默认值时,参数会在初始化过程中产生一个独立的作用域,初始化完成作用域会消失:如果不使用参数默认值,不会产生这个作用域:产生疑问是因为这段代码: var x = 1; function foo(x, y = function () {x = 2;}) { var x = 3; y(); console.log(x); }; foo(); foo(4); console.log(x); 老实说,关于这…
之前在看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…
函数的参数: 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)数组展开        *展开后的效果跟直接把…
function add([x, y]){ return x + y; } add([1, 2]); // 3…
1. ES6的解构ES6中引入了解构赋值的操作,其作用是:将值从数组Array或属性从对象Object提取到不同的变量中 即分为两种情况:从数组Array中解构,以及从对象Object中解构 ①.从数组中解构const [a, b] = [1, 2]//a = 1, b = 2 当然这些是基本的数组解构赋值,你还可以用逗号,进行跨值解构,用扩展运算符...进行多余项的解构等等 ②.从对象中结构const {a, b} = {a: 1, a: 2}//a = 1, b = 2 这也是基本的对象结构…
ES6中对于函数参数主要增加了以下内容: 1.参数的扩展/数组的展开: 2.默认参数. 什么是参数的扩展? 看下面代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0&…
定义函数时为参数指定默认值的能力,是现代动态编程语言的标配.在ES6出现之前,JavaScript是没有这种能力的,框架为了实现参数默认值,用了很多技巧. ES6 的默认参数值功能,与其他语言的语法类似,但功能更强大. 首先,是可以用标量值为函数参数指定默认值,这个标量可以是基本类型.数组.对象. 例1: function foo(name = {first:"张",last:"三"},age = 20, phones = ['18888888888','18666…
在学习ES6函数一章时,发现了一个有意思的现象,原文描述如下: 这段话主要state了3个事实: ①函数参数有默认值时,会在声明初始化阶段形成一个单独的作用域 ②这个作用域在初始化结束后消失 ③没默认值的情况下,没有①②的现象发生. 这就很有意思了,我们一般说函数作用域,一般就是和全局作用域.局部作用域相爱相杀,这下来了个“声明时作用域”,更热闹了,这3者之间到底什么关系呢? 让demo自己来说话吧. 例子1: var x = 10; function f( x,y=()=>{x=20;cons…
函数参数默认值 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.这种写法的缺点在于,如果参…