js小括号的作用
js中小括号()的用法详解:
对于小括号无论是菜鸟还是高手一定都不会陌生,可以说它几乎是随处可见,虽然熟悉但并非真正的理解,由此可能会产生很多莫名其妙的错误,下面就通过代码实例详细介绍一下小括号的用法。
更多的关于js运算符内容可以参阅JS教程版块。
一.作为分组运算符:
分组运算符应该是再熟悉不过了,因为在小学数学中就有应用,例如:
|
1
2
|
var a=(1+2)*4;console.log(a); |
以上代码的输出值是12,因为分组运算符可以改变运算符的优先级,否则的话输出值是9。
扩展说明:
1.很多教程说它是一个强制运算符,其实在ECMAScript中,根本就没有强制运算符这么一个概念,它就是普通分组运算符。
2.这也是为什么eval()函数将json格式字符串转换为对象需再嵌套一个小括号的原因,可以参阅使用eval()将json字符串转换为对象要多加一个小括号一章节。
二.函数声明和函数调用参数列表:
在声明函数或者调动函数的时候,如果有参数,那么就会将参数放在小括号之中,代码如下:
|
1
2
3
4
|
function func(a,b){ //代码}func(1,2); |
三.与特定关键字形成特定语句:
小括号可以与特定的关键词形成特定的语句,代码如下:
|
1
2
3
4
5
6
7
8
9
|
if(a>1){ //代码}while(i<len){ //代码}for(var i=0;i<len;i++){ //代码} |
四.表达式方式函数声明和立即调用函数表达式:
创建一个函数除了函数声明方式声明之外,还可以使用表达式方式,代码如下:
|
1
2
3
4
5
6
|
function func(){ //代码}var func=function(){ //代码} |
第二种就是表达式方式声明一个函数。下面介绍一下函数声明和表达式方式的区别:
函数声明必须带有标识符,也就是函数名,但是函数表达式方式,标识符带不带都可以。
|
1
2
|
function 函数名称 (参数:可选){ 函数体 }//函数声明方式function 函数名称(可选)(参数:可选){ 函数体 }//函数表达式方式 |
要区分一个代码是函数声明还是函数表达式,那要看代码的应用上下文,例如:
|
1
2
|
function func(){};//函数声明方式(function func(){})//函数表达式方式 |
出现在运算符相关上下文中,那么它就是一个表达式,例如下面最常见的代码:
|
1
|
var func=function(){} |
上面介绍一下什么是函数表达式,下面就看一下如何立即调用函数表达式:
|
1
2
3
|
(function(){})();(function(){}());!function(){}(); |
上面三个语句都是在运算符相关上下文中,所以都是表达式,就可以强制调用了,下面做一下分析:
1.(function(){})(),(function(){})是一个表达式,会强制其理解成函数直接量方式,也就是表达式方式创建函数,(function(){})它会返回函数对象的引用,最后使用小括号()调用此函数。
2.(function(){}()),如果不用外面包裹的小括号,{}就会理解为复合语句,那么function(){}就被理解为函数声明,但是没有标识符,所以会报错,使用小括号以后,就会变成表达式,也会被理解为直接量方式。
3.!function(){}(),原理同上,!也是一个运算符,所以在原理同上。
js小括号的作用的更多相关文章
- bash 中 小括号的作用
单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格. ...
- js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global)
js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global) 一.总结 1. ...
- JS:javascript 函数后面有多个小括号是怎么回事?f( )( )( )...
有时我们看见js函数后面跟着多个小括号是怎么回事?f( )( )( )... f()意思是执行f函数,返回子函数 f()()执行子函数,返回孙函数 f()()()执行孙函数 ()()表示定义并执行,使 ...
- JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
本文实例讲述了JS使用正则表达式获取小括号.中括号及花括号内容的方法.分享给大家供大家参考,具体如下: JS 正则表达式 获取小括号 中括号 花括号内的内容 <!DOCTYPE html> ...
- js函数声明外面使用小括号括起来再接一个小括号的写法
js函数声明外面使用小括号括起来再接一个小括号的写法 (function(){})(); (function(){}()); !function(){}(); 总结ps:意思将函数声明变成,直接执行的 ...
- javascript实用技巧,js小知识
一.js整数的操作 使用|0和~~可以将浮点转成整型且效率方面要比同类的parseInt,Math.round 要快,在处理像素及动画位移等效果的时候会很有用.性能比较见此. var foo = (1 ...
- JavaScript小括号、中括号、大括号的多义性
语义1,函数声明时参数表 func(arg1,arg2){ // ... } 语义2,和一些语句联合使用以达到某些限定作用 // 和for in一起使用 for(var a in obj){ // . ...
- javascript小括号、中括号、大括号学习总结
作为一名编程人员,和括号打交道是必不可少的.你可知道在不同的上下文中,括号的作用是不一样的,今天就让我们简单总结下javascript小括号.中括号.大括号的用法. 总的来说,JavaScript中小 ...
- shell中各种括号的作用()、(())、[]、[[]]、{}
一.小括号,圆括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有 ...
随机推荐
- [Python Study Notes]批量将ppt转换为pdf v1.0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- Thymeleaf入门基础
一.简介 1.thymeleaf优点 ①是一个支持html原型的自然引擎,它在html标签增加额外的属性来达到模板+数据的展示方式,由于浏览器解释html时,忽略未定义的标签属性,因此thymelea ...
- Freemarker的基本语法及入门基础
freemarker的基本语法及入门基础一.freemarker模板文件(*.ftl)的基本组成部分 1. 文本:直接输出的内容部分 2. 注释:不会输出的内容,格式为&l ...
- 浅谈扩展欧几里得算法(exgcd)
在讲解扩展欧几里得之前我们先回顾下辗转相除法: \(gcd(a,b)=gcd(b,a\%b)\)当a%b==0的时候b即为所求最大公约数 好了切入正题: 简单地来说exgcd函数求解的是\(ax+by ...
- 高性能JavaScript读书笔记
零.组织结构 根据引言,作者将全书划分为四个部分: 一.页面加载js的最佳方式(开发前准备) 二.改善js代码的编程技巧(开发中) 三.构建与部署(发布) 四.发布后性能检测与问题追踪(线上问题优化) ...
- hihoCoder 1493 : 歌德巴赫猜想 素数筛法
题意:哥德巴赫猜想认为"每一个大于2的偶数,都能表示成两个质数之和".给定一个大于2的偶数N,你能找到两个质数P和Q满足P<=Q并且P+Q=N吗?如果有多组解,输出P最小的一 ...
- hibernate框架基础描述
在hibernate中,他通过配置文件(hibernate,cfg.xml)和映射文件(...hbm.xml)把对象或PO(持久化对象)映射到数据库中表,然后通过操作持久化对象,对数据库进行CRUD. ...
- 安装linux环境及相关包方法
安装linux系统: 先下载 iso镜像文件,在windows系统下,插入u盘,下载 Ultraiso软件,安装好后,根据 http://jingyan.baidu.com/article/a378c ...
- django-装饰器实现PV统计
1.models层建立统计表 # 每日访问量统计 class Statistics(models.Model): pv = models.IntegerField(default=0) uv = mo ...
- ARM-LINUX自动采集温湿度传感器数据
开机root自动登录 如果想在超级终端输入回车,登录后执行,则可以在/etc/profile中加入命令: 如果实现开机自动登录,在/etc/inittab中修改,每个开发板修改的方式可能都不同. ht ...