javascript

位置:IT落伍者 >> javascript >> 浏览文章

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


发布日期:2023年04月06日
 
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例

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

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


javascript:变量的作用域
这些都是细节和我一样初学的一定要注意避免!

复制代码 代码如下:
var golbal = "golbal"; //全局变量
var local ="local";
function area()
{
//局部变量的优先级比全局变量的高
var local = "arealocal"
//当函数体内声明的变量名和全局变量名相同时javascript 会隐藏全局变量
var golbal ="areagolbal";

documentwrite("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";//局部
documentwrite("Createmoreto hope is :"+hope +"<br />");
//输出:Createmoreto hope is :have more money to much
}
createmoreto();//调用
documentwrite("Createmore hope is :" +hope +"<br />");
//输出Createmore hope is :have more money
}
createmore(); //调用


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

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

javascript基本类型和引用类型

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

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


按址传递

复制代码 代码如下:
var array = new Array("Javascccp");
var objarray = array;
function modifyArray(arr)
{
arr[] = "JAVASCRIPT";
}
//没调用函数前
documentwrite(array[] +"<br />");
//输出Javascccp;
//调用函数后
modifyArray(array);
documentwrite(array[]+"<br />");
//输出大写JAVASCRIPT
//通过修改objarray会是一样的效果
objarray[] = "Frank";
documentwrite(array[]+"<br />");
//输出Frank;


小结:上面内容希望大家都不要错过对学习后面的知识还是很有帮助的!

               

上一篇:js获取dom的方法

下一篇:使用javascript过滤html的字符串(注释标记法)