JS中的{}、()、⾃调⽤及()=({})写法含义⽤途
{}
包围对象object
包围代码块code block(如⽅法体,或普通代码块等)。
()
包围参数列表
⾃调⽤表达式,包围⼀些需要通过运算得出结果的代码(其中包围的代码会执⾏⼀次)。
js调用方法的三种写法函数表达式可以⾃调⽤(即⾃动运⾏⼀次)。
如果表达式后⾯紧跟(),会⾃动调⽤。
不能⾃调⽤声明的函数,通过添加括号,来说明他是⼀个函数表达式。
经常可以见到很多⽤()包围{}的地⽅,⽤于将{}内部的代码执⾏⼀次,计算出结果。
demo
可以见到eval('(' + value + ')')。
⾃调⽤函数
function foo() {console.log("hello");} // 声明了⼀个函数foo()
foo() // 调⽤
// ⾃调⽤函数
(function bar() {console.log("world");})(); // ⽴刻执⾏⼀次函数。
bar // 报错,未定义。
箭头函数表达式(ES6)的返回值
箭头函数表达式x => x,表⽰function(x) {return x;}。
但如果返回值是object类型,则不能为x => {name:'JT'},,需要改为x => ({name:'JT'})。
getObj = (num) => {age:num}; // getObj(22) 得不到对象返回值,为undefined。
getObj = (num) => ({age:num}); // getObj(22) 得到对象返回值,为{age:22}。
// 另外,在使⽤typeof查看箭头函数表达式的类型的时候,也可以看到()的作⽤。
typeof x => x // 语法错误。
typeof (x => x) // "function"。使⽤()将箭头函数表达式运⾏为⼀个结果|返回值。这个返回值是⼀个函数。然后⽤typeof判断。
创建匿名函数并⽴即执⾏
// function(str) {return str;}
// 报错:Uncaught SyntaxError: Unexpected token (
// ⽤()包围代码段。成为⼀个函数。
(function(str) {return str;})
// 函数后加(...args),得到的函数会执⾏⼀次。
(function(str) {return str;})("测试")
// 得到函数
func = (function(str) {return str;})
// 直接得到函数执⾏⼀次的返回值
retValue = (function(str) {return str;})("测试");
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论