js中函数的写法
js提供了灵活的函数写法,我们常见的函数写法和调用可能是:
function ask(){
console.log(1);
}
ask();
这样就完成了函数的定义和调用,司空见惯。
还有js里面的匿名函数我们也不陌生,匿名函数的定义和调用:
(function(){console.log(1)})();
(function(){console.log(1)}()):
我们看到匿名函数定义之后立即就被引用了,这其实是立即执行的函数表达式,例如
1 (function(){console.log(1)})();
(function....)这里是一个表达式,然后(function)();这是调用它
而下面的类似,只不过是最后一步计算表达式,但是我们要注意
function(){console.log()}();//error
这种写法是错误的因为匿名函数没有名字,只有内存地址,而这样调用是有名字的调用,第一种情况其实是就算了之后(表达式)然后调用的。
还有就是函数表达式,函数表达式也很常见:
var a=function(){console.log()} a();
这其实也是先把函数的地址给a,这样这个匿名函数就变成有名的了,名字就是a,然后a();调用,这就是所谓的函数表达式,当然,我们写成这种:
var a=function(){console.log(1);}()
也是可以的,但这个时候,我们用a();来调用就不行了,因为a这个时候代表的不是函数名,这种方法其实类似于匿名函数的第二个调用方法,是表达式。
最后附一个小的知识点
var a=[];
var x=2;
a.push(x);
console.log(a[0]);
var x=3;
console.log(a[0]);
这表明push,push的是变量的值而不是变量的地址,所以数组里放的变量的副本,而不是地址
js中函数的写法的更多相关文章
- JS中函数参数和函数返回值的理解
函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能 ...
- 关于js中函数的调用问题
js中函数的调用方法 1.直接调用 函数名(参数): 2.通过指向函数的变量去调用 例如: var myval = 函数名: 此刻 myval是指向函数的一个指针: myval(实际参数):此刻调用的 ...
- js中函数传参的情况
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- JS中函数void()
<a href="javascript:void(0)">hello</a>/* * JS中函数void()的运用大体是这种新式; * void()是运算符 ...
- 对JS中函数的理解
函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能 ...
- js中函数的参数为函数的情况即回调函数
js中函数的参数可以是数组对象也可以是函数,当参数为函数时我们叫做回调函数 //定义回调函数function B() { console.log("函数B")setTimeout( ...
- js中(function(){})()的写法用处
直到今天我才明白的一个玩意!!! 来来来,首先嘛,JS中函数有两种命名方式 1.一种是声明式. 而声明式会导致函数提升,function会被解释器优先编译.即我们用声明式写函数,可以在任何区域声明,不 ...
- JS中函数声明与函数表达式的不同
Js中的函数声明是指下面的形式: function functionName(){ } 这样的方式来声明一个函数,而函数表达式则是类似表达式那样来声明一个函数,如 var functionName ...
- JS中函数的基础知识
函数 一. 函数定义 函数又叫方法,在程序里面函数是用来执行某些特定功能的代码.为了减少重复使用代码,可以把特定功能的代码做成函数,需要使用时拿出来调用.alert();就是一个很常见的.简单的函数 ...
随机推荐
- candy(贪心)
[题目] There are N children standing in a line. Each child is assigned a rating value. You are giving ...
- maven技术(一)软件安装与配置
maven技术在研发的过程中,作为资源依赖管理非常出色,例如在Java项目开发过程中,需要各种各样jar包,一般情况下开发者会直接将所用到的jar包放在project的lib目录下,提供自己程序调用. ...
- Day10 多线程理论 开启线程
多线程: 多线程和多进程的不同是他们占用的资源不一样, 一个进程里边可以包含一个或多个进程, 进程的开销大,线程的开销小. 打个比方来说:创建一个进程,就是创建一个车间.创建一个线程,就是在一个车间创 ...
- ERR_NAME_NOT_RESOLVED错误的解决
参考:http://zhidao.baidu.com/link?url=-Beq80OXoSKef_9SmGXkQHvq2AkSE0aGfac02ykorglQF6JTP7F1XNtVxFn9EMfn ...
- 使用springmvc时静态的文件获取不到,比如说样式丢失的问题。
当使用springmvc时前台所有的样式全部都消失不见了,查了很多资料,简单的说就是我在配置web.xml中的过滤器时将<url-pattern></url-pattern>中 ...
- Linux 命令行输入
这几天刚刚接触到Linux,在windows上安装的VMWare虚拟机,Centos7.安装什么都是贾爷和办公室的同事帮忙搞定的. 在虚拟机界面,按快捷键Ctrl+Alt+Enter,可以全屏显示Li ...
- mysql 关于表与字段的增删改查操作
1.mysql 命令登陆 形式: mysql -u用户名 -p密码 mysql -uroot -proot 2.mysql 显示数据库 形式: show databases; 3.mysql 进入某一 ...
- 常用域名记录解释:A记录、MX记录、CNAME记录、TXT记录、AAAA记录、NS记录
A记录 A记录是用来创建到IP地址的记录. A记录设置技巧 1.如果想创建不带www的记录,即ezloo.com,在主机记录中填写@或者留空,不同的注册商可能不一样. 2.创建多个域名到同一个IP,比 ...
- 请求转发(forward)和重定向(redirect)的区别
转发不会改变地址栏,重定向会. 转发是请求一次,重定向请求两次. 转发过程中只有一个request对象产生,重定向是两个. 转发不能转发到站外,重定向可以发送到站外. 重定向的第2个请求的请求方式是什 ...
- 网络-tcp
1.TCP:面向连接可靠的传输协议,全拼:Transmission Control Protocol 2.UDP:用户数据报协议 全拼:User Datagram protocol 不是面向连接的 ...