JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例


Posted in Javascript onJune 29, 2013

javascript:变量的声明
以下是几种声明变量的方式

 var value;
 var value,value1,value2;//同时声明多个变量,但是这些变量的值都是undefined
 var i = 0,j = 0,k=100;//变量声明,初始化一体。
 //如果大家尝试读一个不存在的变量(值)会报错!但是尝试给一个未使用Var声明的变量赋值,javascript
 //会隐式的声明改变量,而且声明了的变量还是全局的。细节:所以大家创建变量都尽量使用Var
 //变量的作用域(这个问题也容易出,大家要搞明白)

javascript:变量的作用域
 这些都是细节,和我一样初学的一定要注意避免!
var golbal = "golbal"; //全局变量
 var local ="local";
function area()
 {
//局部变量的优先级比全局变量的高
var local = "arealocal"
//当函数体内声明的变量名和全局变量名相同时,javascript 会隐藏全局变量
var golbal ="areagolbal"; document.write("local is :"+local + "and golbal is :" + golbal +"<br />");
 }
area();
//输出:local is :arealocaland golbal is :areagolbal

在嵌套的函数里面定义局部变量,效果会怎么样呢?看下面:
var hope = "moremoney";
function createmore()
{
var hope = "have more money";//局部
function createmoreto()//嵌套函数
{
var hope = "have more money to much";//局部
document.write("Createmoreto hope is :"+hope +"<br />");
  //输出:Createmoreto hope is :have more money to much
}
 createmoreto();//调用
 document.write("Createmore hope is :" +hope +"<br />");
//输出:Createmore hope is :have more money
}
 createmore(); //调用

javascript:传值和传址
这里也是比较重要的概念!不要漏了。

  传值 传址
复制 实际复制的值,存在不同的、独立的拷贝。 复制的只是对数字的引用。如果通过这个新的引用修改了数值,这个改变对最初的引用来说也是可见的。
传递 传递给函数的是值的独立拷贝对它的改变在函数外没有影响 传递给函数的是对数值的引用,如果函数通过传递给它的引用修改了数值,这个改变也是可见的。
比较 比较这两个对立的值,通常逐字节的比较,以判断是否相等 比较的是两个引用,以判断它们引用的是否是同一个数值。

javascript:基本类型和引用类型

javascript的基本规则是:基本类型通过传值来操作,引用类型通过传址来操作。(什么事值类型,或者什么事引用看我上一篇)
按值传递

 var value = 1;
 var copyvalue = value; //将value赋给另一个变量
  function addTotal(total,arg)
  {
 total+= arg; //total = total + arg 效果等同
 }
 //调用函数,传两个参数(大家可能会认为这个函数改变了全局变量的值,其实没有,函数用的也是对立拷贝)
 addTotal(value,copyvalue); 
 if(value == 1) copyvalue = 2;
 document.write("total \t" + value + "and copyvalue \t\t" + copyvalue+"<br />");
 //最后输出:total 1and copyvalue 2

按址传递
 var array = new Array("Javascccp");
 var objarray = array;
 function modifyArray(arr)
 {
 arr[0] = "JAVASCRIPT";
 }
 //没调用函数前
 document.write(array[0] +"<br />");
 //输出Javascccp;
 //调用函数后
 modifyArray(array);
 document.write(array[0]+"<br />");
 //输出大写JAVASCRIPT
 //通过修改objarray会是一样的效果
 objarray[0] = "Frank";
 document.write(array[0]+"<br />");
  //输出Frank;

小结:上面内容希望大家都不要错过,对学习后面的知识还是很有帮助的!
Javascript 相关文章推荐
jsvascript图像处理—(计算机视觉应用)图像金字塔
Jan 15 Javascript
javascript模拟地球旋转效果代码实例
Dec 02 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
Oct 31 Javascript
CSS3,HTML5和jQuery搜索框集锦
Dec 02 Javascript
javascript中 try catch用法
Aug 16 Javascript
Javascript中apply、call、bind的巧妙使用
Aug 18 Javascript
JS不完全国际化&amp;本地化手册 之 理论篇
Sep 27 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
Nov 10 Javascript
VUE元素的隐藏和显示(v-show指令)
Jun 23 Javascript
分析javascript原型及原型链
Mar 18 Javascript
解决ant Design中Select设置initialValue时的大坑
Oct 29 Javascript
vue如何使用模拟的json数据查看效果
Mar 31 Vue.js
JS验证日期的格式YYYY-mm-dd 具体实现
Jun 29 #Javascript
js操作checkbox遇到的问题解决
Jun 29 #Javascript
JavaScript自执行闭包的小例子
Jun 29 #Javascript
JS自动适应的图片弹窗实例
Jun 29 #Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
Jun 28 #Javascript
Ext JS添加子组件的误区探讨
Jun 28 #Javascript
Javascript实现重力弹跳拖拽运动效果示例
Jun 28 #Javascript
You might like
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
PHP查看SSL证书信息的方法
2016/09/22 PHP
ThinkPHP5&amp;5.1框架关联模型分页操作示例
2019/08/03 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
cssQuery()的下载与使用方法
2007/01/12 Javascript
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
js模拟微博发布消息
2017/02/23 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
python中的代码编码格式转换问题
2015/06/10 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
罗技美国官网:Logitech美国
2020/01/22 全球购物
学生会副主席竞聘书
2014/03/31 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
模范教师事迹材料
2014/12/16 职场文书
骨干教师申报材料
2014/12/17 职场文书
撤诉申请怎么写
2015/05/19 职场文书
2015团员个人年度总结
2015/11/24 职场文书
七年级作文之秋游
2019/10/21 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers