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() { 这里是要执行的代码 } 函数参数 函数的 ...
随机推荐
- poi导出word表格跨行
DataCommon.java package com.ksource.pwlp.model.statistic; public class DataCommon { private Long id; ...
- 原创:【ajax | axios跨域简单请求+复杂请求】自定义header头Token请求Laravel5后台【亲测可用】
如标题:我想在ajax的header头增加自定义Token进行跨域api认证并调用,api使用laravel5编写,如何实现? 首先,了解下CORS简单请求和复杂请求. -- CORS简单请求 -- ...
- CentOS7优化打开文件句柄数,修改MariaDB允许最大连接数、允许最大插入数据库的数据大小。
修改服务器配置:vim /etc/systemd/system.conf查找并修改下列两行的值:DefaultLimitNOFILE=1024000DefaultLimitNPROC=1024000 ...
- 超简易简易PHP爬虫
利用CURL和DOMDocument.通过xpath筛选数据,实现的简易PHP爬虫 <?php header('Content-type: text/plain; charset=utf-8') ...
- npm 加速之 yarn cnpm pnpm
npm 加速之 yarn cnpm pnpm 有没有感觉到使用 npm 的时候很慢? 安装速度 几Kb/s 不说, 还装着装着出错了, 奇奇怪怪的问题.这种情况大多数还是因为网络的原因, 很多时候虽然 ...
- https本地自签名证书添加到信任证书访问
1.背景 本文适用于基于https(http+ssl)的网站通信.本地调试等,上线是请寻找免费 ssl证书申请. 本地调试过程中,一些特殊的场景需要我使用http+ssl通信,比如在Chrome中使用 ...
- 使用Cloud Toolkit部署SpringBoot项目到服务器
由于我们经常发布项目到测试服,在测试服上调试一些本地无法调试的东西,所以出现了各种打包,然后上传.启动,时间都耗费在这无聊的事情上面了,偶然在网上看到IntelliJ IDEA有 Cloud Tool ...
- nginx/apache静态资源跨域访问问题详解
1. apache静态资源跨域访问 找到apache配置文件httpd.conf 找到这行 #LoadModule headers_module modules/mod_headers.so把#注释符 ...
- JMETER - 连接MySQL数据库_函数助手_随机登录
1. 导入mysql-connect.jar包 2. 添加配置原件-jdbc connection config 3. 添加jdbc请求 填写信息 4. 连接数据库 OK 5. 增加语句:jdbc r ...
- Is the docker daemon running?
原文 刚在新的Centos上安装Docker-CE,后运行docker run hello-world报错Cannot connect to the Docker daemon at unix:/// ...