zoukankan      html  css  js  c++  java
  • javascript function前面的符号!~-

    经常会遇到这种函数写法:

    !function() {do something...}()
    ~function(){do something...}()
    

    js中可以这样创建一个匿名函数:

    (function(){do something...})()
    //或
    (function(){do something...}())
    

    匿名函数后面的小括号()是为了让匿名函数立即执行。

    那为什么这么写就会报错呢:
    function(){alert(1)}() // Uncaught SyntaxError: Unexpected token

    因为function前面没有(或者! ~之类的运算符,js解析器会试图将关键字function解析成函数声明语句,而不是函数定义表达式!
    作为组运算符,小括号()会将其内部的表达式当成一个整体,然后返回结果,所以定义一个匿名函数正确的格式就是用小括号将函数体括起来!

    同样的! ~ + -等运算符也有同样的效果,这是因为匿名函数也是一种值,这些运算符会将后面的函数体当成一个整体,先对匿名函数进行求值,然后在对结果进行运算!

  • 相关阅读:
    scrapy 中间件
    索引
    理解平均负载
    jquery1
    网络编程
    模块
    进程
    图书管理系统用ajax删除书籍
    mysql
    jquery
  • 原文地址:https://www.cnblogs.com/amize/p/13336048.html
Copyright © 2011-2022 走看看