JS中的{}、()、自调用及()=>({})写法含义

用途

  • {}
    包围对象object
    包围代码块code block(如方法体,或普通代码块等)。
  • ()
    • 包围参数列表
    • 自调用表达式,包围一些需要通过运算得出结果的代码(其中包围的代码会执行一次)。
      函数表达式可以自调用(即自动运行一次)。
      如果表达式后面紧跟(),会自动调用。
      不能自调用声明的函数,通过添加括号,来说明他是一个函数表达式。

经常可以见到很多用()包围{}的地方,用于将{}内部的代码执行一次,计算出结果。

demo

    • window.eval()
      可以见到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;})("测试");
复制代码

 

posted @   vickylinj  阅读(9798)  评论(1编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示