- 浏览: 52212 次
- 来自: 深圳
文章分类
最新评论
JS函数中带与不带括号的区别
其实总结起来如下:
函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码。
不加括号的,都是把函数名称作为函数的指针,用于传参,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。
所以一般时候我们都是采用的是无括号的原因。这也是由于括号的二义性,因为括号是“函数调用运算符”,相当于在执行这样一个函数,所以产生的问题在理解了之后也就理解了。
另外:除了两边不加括号,也可以两边都加括号来实现函数的拷贝,而不是执行函数,如果左边无圆括号右边有圆括号,实际就是相当于产生的是一个属性而不是一个方法了,在调用的时候只用属性名或者函数名,而不需要再用函数调用运算符圆括号了,因为它就相当于一个属性,当然也可以用函数调用的方式来调用,加上括号,拿上例子来说就是如果写成person.sayHello =sayHi(),在调用sayHello的时候就可以直接用person.sayHello或者person.sayHello()了,二者都实现相同的效果。
get 是函数自身, get() 是运行函数
var x=get;
那么 x 和 get 是等同的
var x=get();
那么 x 是 函数 get 的返回值
例如
function get(){return 1}
var x=get(); 那么 x 就等于 1 咯
如果是
var x=get;
那么
var y=x(); 和 var y=get(); 都是等价的。
.
其实总结起来如下:
函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码。
不加括号的,都是把函数名称作为函数的指针,用于传参,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。
所以一般时候我们都是采用的是无括号的原因。这也是由于括号的二义性,因为括号是“函数调用运算符”,相当于在执行这样一个函数,所以产生的问题在理解了之后也就理解了。
另外:除了两边不加括号,也可以两边都加括号来实现函数的拷贝,而不是执行函数,如果左边无圆括号右边有圆括号,实际就是相当于产生的是一个属性而不是一个方法了,在调用的时候只用属性名或者函数名,而不需要再用函数调用运算符圆括号了,因为它就相当于一个属性,当然也可以用函数调用的方式来调用,加上括号,拿上例子来说就是如果写成person.sayHello =sayHi(),在调用sayHello的时候就可以直接用person.sayHello或者person.sayHello()了,二者都实现相同的效果。
get 是函数自身, get() 是运行函数
var x=get;
那么 x 和 get 是等同的
var x=get();
那么 x 是 函数 get 的返回值
例如
function get(){return 1}
var x=get(); 那么 x 就等于 1 咯
如果是
var x=get;
那么
var y=x(); 和 var y=get(); 都是等价的。
.
发表评论
-
IE下使用uploadify上传文件的相关问题解决
2017-10-12 12:14 310SWFUpload.prototype.cleanUp = f ... -
js和java 中文乱码
2016-11-18 11:37 570因为在jsp中对中文进行了编码的时候用的是UTF-8的编码 ... -
js常用方法
2016-08-25 17:37 475当前返回日期yyyy-MM-dd function get ... -
js时间比较/当前时间
2015-12-03 21:49 498var selectDate=edit.getContro ... -
js map类型
2015-08-25 10:11 966<script> function Map2() ... -
javat替换成换行符,关于textarea中换行、回车、空格的识别与处理
2015-08-24 20:05 1669var newString=con.replace(/\n/ ... -
使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL
2015-07-18 15:24 5073后退时关闭当前页面 < ... -
限制文本框只能输入数字
2015-07-07 15:59 422js控制只允许输入数字 avascript 只允许输入数字有很 ... -
正确优雅的解决用户退出问题——JSP和Struts解决方案(转载)
2015-07-06 17:37 524正确优雅的解决用户退出问题——JSP和Struts解决方案(转 ... -
长度限制
2015-06-12 16:56 675//=============得到输入框长度(包括中文)=== ... -
js input即时监听输入值
2015-06-08 17:01 2548总结一下 :要想在输入框超过限制长度时候,不给输入。之前是用o ... -
回车和点击实现表单提交
2015-06-02 14:06 430<html> <head> <t ... -
js记录用户名密码 COOKIE
2015-06-02 10:43 829记录COOKIE后,当取消复选框时 发现无法删除COOKIE。 ... -
Js实现图片上传前在本地预览
2015-05-28 17:59 556<!DOCTYPE html PUBLIC " ... -
获取系统当前时间 适合用于头部
2015-05-26 16:26 446<!DOCTYPE HTML PUBLIC " ... -
JS 将字符串转换成日期类型
2015-05-22 14:52 658JS 将字符串转换成日期类型 2013-06-19 17:48 ... -
JS 字符串长度判断
2015-05-20 10:08 1680content.replaceAll("(\r\n| ... -
js开发遇到在方法中调用另一方法问题
2015-05-19 18:03 520/eas_crm_dayi/WebContent/ecp/pa ...
相关推荐
当我们谈论“函数名带括号”和“不带括号”的区别时,实际上是在讨论函数的调用与引用的区别。 首先,我们要明白函数调用的基本形式。在JavaScript中,当你在函数名后加上一对括号 `()`,这就是执行或调用该函数的...
在JavaScript中,括号用于改变运算顺序,表达式`a * (b + c)`会先计算括号内的`b + c`,然后将结果与`a`相乘。乘方运算(**)的优先级高于乘法和除法,而加法和减法的优先级相同,从左到右进行计算。求余运算(%)是...
总结一下,构造函数加括号与不加括号的区别在于它们如何处理成员方法的调用。加括号的调用通常用于静态方法,而不需要创建新对象;不加括号的调用则用于实例方法,需要先通过`new`关键字创建对象。在编写代码时,...
在JavaScript中,函数名后面加括号与不加括号的差异影响了函数的调用时机。 当你在函数名后面加上括号时,比如`fun1()`,这代表立即执行该函数。如果函数有返回值,那么它会得到那个值。如果在事件处理中使用这种...
在JavaScript中,有三种主要的函数定义方式:带名函数、匿名函数和箭头函数。每种函数类型都有其特定的用途和特点。 1. **带名函数**: 带名函数在定义时有一个明显的函数名称,例如`function abs(x) {...}`。这种...
JavaScript中的括号`()`在编程中扮演着多种角色,它们不仅仅是数学运算中的基本符号,更是JavaScript语法中的关键组成部分。下面是对括号在JavaScript中不同用途的详细解释: 1. **提高运算优先级**: 在...
**JS中函数参数的特殊性** - 函数声明的参数可以不传递,内部可以使用`arguments`对象来访问所有传入的实际参数,它是一个类数组对象。 - 形参和实参数量可以不同,`arguments`对象可以帮助处理不确定数量的参数...
在编写复杂的代码时,特别是在大项目中,快速准确地找到匹配的括号可以大大提高工作效率,避免因括号不匹配导致的错误。"IDEA花括号插件"正是为了解决这一问题,它通过将邻近的括号用不同颜色高亮显示,使得代码结构...
### JavaScript 函数验证知识点 #### 一、字符串处理函数 1. **`LTrim`**:去除字符串左侧的空白字符。 - **定义**:此函数接收一个字符串参数,并返回一个新的字符串,该字符串已移除所有左侧空白字符(包括空格...
### 二、JavaScript函数的基本使用 示例代码中定义了两个名为 `isSBCcase` 的函数,分别用于检测全角符号和中文字符。 #### 2.1 函数声明 函数使用 `function` 关键字进行声明,后面跟函数名和参数列表。 - `...
在JavaScript中,匿名函数通常通过`function`关键字定义,但不提供名称。例如: ```javascript (function() { // 函数体 })(); ``` 这里的匿名函数被立即执行,因为后面跟着一对圆括号。这种模式常被称为立即执行...
在JavaScript中,我们可以直接定义一个不带名称的函数表达式,例如: ```javascript // 会报错,因为缺少分号 // function(){} // 将匿名函数赋值给变量 var fun = function() {}; // 匿名函数自执行 (function()...
而带括号的函数(如`Fun()`)是函数的执行,它会立即执行函数体内的代码并返回结果(如果有返回值的话)。 5. **回调函数与事件处理**: 在JavaScript中,经常将函数用作回调,比如在异步操作中。在这种情况下,...
)在JavaScript函数前的使用,主要是为了将函数表达式转换为IIFE,以实现代码的封装和立即执行。这种方法在编写模块化、无污染的JavaScript代码时特别有用。而选择加号还是叹号,则更多是个人风格和对结果取反需求的...
与函数声明相对的是函数表达式,这种方式定义的函数可能不包含函数名(匿名函数表达式),或者函数名仅在表达式内部有效(局部函数名)。函数表达式可以赋值给变量,也可以立即执行(IIFE,立即调用函数表达式)。 `...
在标题和描述中提到的"JS中的eval为什么加括号",这个问题通常与如何正确地使用`eval`来解析JSON字符串有关。 在JavaScript中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于...
JavaScript中的匿名函数是一种没有名称的函数,通常用于一次性执行或者作为其他表达式的一部分。它们在JavaScript编程中扮演着重要角色,特别是在回调、闭包和模块化等场景中。以下是各种匿名函数的调用与写法的详细...