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 相关文章推荐
基于jquery的DIV随滚动条滚动而滚动的代码
Jul 20 Javascript
jQuery模拟点击A标记示例参考
Apr 17 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
Aug 22 Javascript
JS 拼凑字符串的简单实例
Sep 02 Javascript
js鼠标移动时禁止选中文字
Feb 19 Javascript
Vue.js实现分页查询功能
Nov 15 Javascript
Vue响应式原理深入解析及注意事项
Dec 11 Javascript
element-ui 表格实现单元格可编辑的示例
Feb 26 Javascript
VUE搭建手机商城心得和遇到的坑
Feb 21 Javascript
微信小程序如何使用globalData的方法
Jun 06 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
Mar 16 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
Jul 26 Javascript
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
PHP中将网页导出为Word文档的代码
2012/05/25 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
php可生成缩略图的文件上传类实例
2014/12/17 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
PHP中FTP相关函数小结
2016/07/15 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
python为tornado添加recaptcha验证码功能
2014/02/26 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
python中的变量如何开辟内存
2018/06/26 Python
python实现弹跳小球
2019/05/13 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
基于PyTorch中view的用法说明
2021/03/03 Python
英国女性时尚品牌:Apricot
2018/12/04 全球购物
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
高中教师考核方案
2014/05/18 职场文书
2015年发展党员工作总结报告
2015/03/31 职场文书
班主任工作总结范文
2015/08/13 职场文书
初级职称评定工作总结
2015/08/13 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
Python实现随机生成迷宫并自动寻路
2021/06/13 Python
Python MNIST手写体识别详解与试练
2021/11/07 Python
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers