zoukankan      html  css  js  c++  java
  • 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;})("测试");
  • 相关阅读:
    Java AbstractQueuedSynchronizer(AQS)
    CentOS Install Rancher & K3s
    CentOS Install Rancher & Kubernetes
    CentOS Install Kubernetes & Kubesphere
    支付宝小程序入门
    uni-app 抽奖
    APP上架
    uniapp微信小程序语音识别实现
    uniapp 安卓打包之导入的项目打包指导
    uniapp 支付宝 支付后不成功回调
  • 原文地址:https://www.cnblogs.com/vickylinj/p/13928558.html
Copyright © 2011-2022 走看看