一、全局变量和局部变量
全局变量:当前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函数(续)的更多相关文章

  1. 3.3 js函数

    1.函数语法: 函数声明的方式:function 函数名(参数1,参数2-){//函数体;}函数调用:函数名(参数1,参数2-); 函数内不一定都指定返回值. 如果需要指定返回值,可用 return ...

  2. Js函数function基础理解

    正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...

  3. js函数表达式和函数声明的区别

    我们已经知道,在任意代码片段外部添加包装函数,可以将内部的变量和函数定义"隐 藏"起来,外部作用域无法访问包装函数内部的任何内容. 例如: var a = 2; function ...

  4. 通用js函数集锦<来源于网络> 【二】

    通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...

  5. 通用js函数集锦<来源于网络/自己> 【一】

    通用js函数集锦<来源于网络/自己>[一] 1.返回一个全地址2.cookie3.验证用户浏览器是否是微信浏览器4.验证用户浏览器是否是微博内置浏览器5.query string6.验证用 ...

  6. 100多个基础常用JS函数和语法集合大全

    网站特效离不开脚本,javascript是最常用的脚本语言,我们归纳一下常用的基础函数和语法: 1.输出语句:document.write(""); 2.JS中的注释为//3.传统 ...

  7. JS函数

    1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏 ...

  8. js函数和运算符

    函数是由事件驱动或者它被调用时执行可重复使用的代码块. <script> function myFunction(){ Alert(“hello World!”): } </scri ...

  9. JavaScript学习03 JS函数

    JavaScript学习03 JS函数 函数就是包裹在花括号中的代码块,前面使用了关键词function: function functionName() { 这里是要执行的代码 } 函数参数 函数的 ...

随机推荐

  1. qt5 源码编译

    源码 qt-everywhere-src-5.11.3 依赖 apt-get install bison build-essential gperf flex ruby python libasoun ...

  2. 列出python库的内置方法

    import cv dir(cv) ['16SC', '16UC', '32FC', '32SC', '64FC', '8SC', '8UC', 'Abs', 'AbsDiff', 'AbsDiffS ...

  3. js正则表达式提取汉字和去掉汉字

    //只提取汉字   function GetChinese(strValue) {       if(strValue!= null && strValue!= "" ...

  4. SpatiaLite, load spatial extension first

  5. Base64编码解码(js)

    开源的base64.js,使用很简单,浏览器引入该JS文件,然后Base64编码这样: Base64.encode('china is so nb'); // 编码 "Y2hpbmEgaXM ...

  6. Fiddler抓包_次要功能和第三方插件

    1.替换HTTP Request Host 应用场景:进行开发时,线上去测试跳转调试 替换命令:urlreplace news.baidu.com www.baidu.com: 清除命令:urlrep ...

  7. Mybatis出错: Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.cyf.pojo.User with invalid types () or values ()

    org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.apache.ib ...

  8. 【APM】Pinpoint 安装部署(一)

    Pinpoint简介 Pinpoint是用Java / PHP编写的大规模分布式系统的APM(应用程序性能管理)工具.受Dapper的启发,Pinpoint提供了一种解决方案,可通过跟踪跨分布式应用程 ...

  9. ECharts 避免变窄

    var roomPercentChart = echarts.init(document.getElementById('room_percent')); function ajaxGetRoomPe ...

  10. Spring security oauth2 password flow

    Spring security oauth2 包含以下两个endpoint来实现Authorization Server: AuthorizationEndpoint: 授权请求访问端点, 默认url ...