js函数(续)
一、全局变量和局部变量
全局变量:当前js页面中均可使用的变量【声明在函数外面的变量】,整个js页面中均可以使用。
局部变量:声明在函数内部的变量,只能在函数内部使用。
eg:
var a = 1;
console.log(a);
function test(){
console.log(a); //
var b = 2 //
c = 3; //c变量为全局变量,它的声明提前了【在页面的开始声明】
console.log(b); //
}
console.log(b); //错误提示:b is not defined
二、函数的使用
函数作为函数的参数使用:(可以作为回调函数使用)
eg:
function test(fun){
var msg = '我是test()函数中的变量msg';
fun(msg);
}
//函数test的调用
test(function(param){
console.log(param); //输出:我是test()函数中的变量msg
});
函数作为返回结果来使用:
eg:
function test(){
return function(){
console.log('我是test()函数的返回函数中的输出语句');
};
}
//函数test的调用
test(); //test();的返回值为:function(){console.log('我是test()函数的返回函数中的输出语句');}
test()(); //输出:我是test()函数的返回函数中的输出语句
三、值传递与地址传递【简单叙述一下】
a.变量是通过值传递的。后面变量值改变不影响前面变量的值【相当于值的复制】
b.对象是通过地址传递的。赋值时使用的是指向该对象的指针地址,获得该指针地址的变量改变
对象属性值,其他拥有相同指针地址的变量指向的堆空间属性值也相应更新改变,所以其前面对象相应的属性值会发生改变。
四、闭包
//闭包 是函数访问上下文中的变量
var arr = [];
for(var i=0;i<5;i++){
/*
//这样的代码会有闭包现象
arr[i] = function(){
console.log(i);
};
*/ //解决闭包问题,使用立即执行函数来动态获得相应参数i的值
arr[i] = (function(num){
return function(){
console.log(num);
};
})(i);
}
console.log(arr); //Array(5) [i(),i(),i(),i(),i()]
arr[0](); //
arr[1](); //
arr[2](); //
js函数(续)的更多相关文章
- 3.3 js函数
1.函数语法: 函数声明的方式:function 函数名(参数1,参数2-){//函数体;}函数调用:函数名(参数1,参数2-); 函数内不一定都指定返回值. 如果需要指定返回值,可用 return ...
- Js函数function基础理解
正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...
- js函数表达式和函数声明的区别
我们已经知道,在任意代码片段外部添加包装函数,可以将内部的变量和函数定义"隐 藏"起来,外部作用域无法访问包装函数内部的任何内容. 例如: var a = 2; function ...
- 通用js函数集锦<来源于网络> 【二】
通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...
- 通用js函数集锦<来源于网络/自己> 【一】
通用js函数集锦<来源于网络/自己>[一] 1.返回一个全地址2.cookie3.验证用户浏览器是否是微信浏览器4.验证用户浏览器是否是微博内置浏览器5.query string6.验证用 ...
- 100多个基础常用JS函数和语法集合大全
网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write(""); 2.JS中的注释为//3.传统 ...
- JS函数
1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏 ...
- js函数和运算符
函数是由事件驱动或者它被调用时执行可重复使用的代码块. <script> function myFunction(){ Alert(“hello World!”): } </scri ...
- JavaScript学习03 JS函数
JavaScript学习03 JS函数 函数就是包裹在花括号中的代码块,前面使用了关键词function: function functionName() { 这里是要执行的代码 } 函数参数 函数的 ...
随机推荐
- CSRF的防御
声明 本文转自:跨站请求伪造漏洞
- MySQL与MariaDB核心特性比较详细版v1.0(覆盖mysql 8.0/mariadb 10.3,包括优化、功能及维护)
注:本文严禁任何形式的转载,原文使用word编写,为了大家阅读方便,提供pdf版下载. MySQL与MariaDB主要特性比较详细版v1.0(不含HA).pdf 链接:https://pan.baid ...
- Ubuntu 16.04.4 LTS下安装OpenSSL
1.下载openssl,本次下载的版本是openssl-1.1.0l.tar.gz : 地址 https://www.openssl.org/source/openssl-1.1.0l.tar.gz ...
- android studio 创建项目的一些配置
build.gradle文件 apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao' // 使用 ...
- 解决ffmpeg拉流转发频繁丢包问题max delay reached. need to consume packet
软件: 1.流媒体服务器EasyDarwin-windows-8.1.0-1901141151 2.ffmpeg-20181001-dcbd89e-win64-static 3.直播源:rtsp:// ...
- Swift5升级遇到的AVCapturexxxDelegate的坑,写法换了
升级到swift5之后,遇到关于AVCapture的两个代理都失效了, 找了一圈,发现原因是代理方法写法变了,如果不替换,代理事件就收不到了 解决方法: 替换新写法就可以了 我这边只举例我遇到的两个例 ...
- android Studio keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件
//android Studio keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件 遇到这个问题好久了,一直没解决今天搜集了大量的资料,有的说什么Java没配置好,不是扯犊子吗 ...
- 006-nginx.conf详解-error_page 使用
一.概述 nginx指令error_page的作用是当发生错误的时候能够显示一个预定义的uri 1.1.使用步骤 更改nginx.conf在http定义区域加入: proxy_intercept_er ...
- 设置驱动的方法(Chrome 亲测ok)
驱动下载地址 http://selenium-release.storage.googleapis.com/index.html package com.selenium.java.webdriver ...
- Ubuntu14 配置开机自启动/关闭
1.ubuntu默认运行级别为2(runlevel),所以在/etc/rc2.b中S开头的链接文件(连接到/etc/init.d)就是自启动项.不想开机自动启动可以把S开头的文件重命名或删除,重命名好 ...