javascript 的 "!function" 是什么意思?

javascript 的 "!function" 是什么意思?

Javascript
专业回答

2014-03-07 16:31
这种叫自执行函数表达式
在这种情况下,解析器在解析function关键字的时候,会将相应的代码解析成function表达式,而不是function声明。

// 下面2个括弧()都会立即执行

(function () { /* code */ } ()); // 推荐使用这个
(function () { /* code */ })(); // 但是这个也是可以用的

// 由于括弧()和JS的&&,异或,逗号等操作符是在函数表达式和函数声明上消除歧义的
// 所以一旦解析器知道其中一个已经是表达式了,其它的也都默认为表达式了

var i = function () { return 10; } ();
true && function () { /* code */ } ();
0, function () { /* code */ } ();

// 如果你不在意返回值,或者不怕难以阅读
// 你甚至可以在function前面加一元操作符号

!function () { /* code */ } ();
~function () { /* code */ } ();
-function () { /* code */ } ();
+function () { /* code */ } ();

--------------------------------
注意后面加();调用

  <script>
  var d=3;
    var c=31;
  e = function(){alert('b')};
  //e();
  (function(){ c=1,d=2,e();}());
  //aa();
  alert(c);
  </script>

`function` 是 JavaScript 中用于**声明函数**的关键字。它告诉 JavaScript 引擎:接下来是一段可重复调用的代码块,也就是一个函数。 --- ### ✅ 基本语法: ```javascript function 函数名(参数1, 参数2, ...) { // 函数体:要执行的代码 return 返回值; // 可选 } ``` --- ### 🔍 示例说明: #### 示例 1:无参数函数 ```javascript function sayHello() { console.log("你好,世界!"); } sayHello(); // 调用函数,输出:你好,世界! ``` #### 示例 2:带参数函数 ```javascript function add(a, b) { return a + b; } console.log(add(2, 3)); // 输出:5 ``` #### 示例 3:带函数名和逻辑判断的函数(如你提供的) ```javascript function setVolSliderVal(v) { if (slider_cur_val !== v) { volFakeSet = 1; slider_sta.setValue(v); } } ``` - `function setVolSliderVal(v)` 表示定义一个名为 `setVolSliderVal` 的函数,它接受一个参数 `v`。 - 函数体中的代码会在每次调用 `setVolSliderVal(某个值)` 时执行。 --- ### 📌 函数的三大作用: 1. **封装代码**:把一段逻辑封装成一个函数,便于重复使用。 2. **接收参数**:函数可以接收外部传入的数据。 3. **返回结果**:函数可以返回处理后的结果给调用者。 --- ### 🧠 补充说明: JavaScript 中定义函数的方式有多种,`function` 是其中最常见的一种: | 方式 | 示例 | 特点 | |------|------|------| | 函数声明 | `function foo() {}` | 可以提升(hoisted) | | 函数表达式 | `const foo = function() {}` | 不可提升 | | 箭头函数(ES6) | `const foo = () => {}` | 更简洁,但 `this` 的指向不同 | --- ### ✅ 总结: - `function` 是 JavaScript 中定义函数的关键字。 - 使用它可以创建一个可以重复调用、接受参数、返回值的代码块。 - 函数是组织和复用代码的核心方式之一。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值