javascript:变量的声明
以下是几种声明变量的方式
复制代码 代码如下:
var value;
var value
value
value
;//同时声明多个变量
但是这些变量的值都是undefined
var i =
j =
k=
;//变量声明
初始化一体
//如果大家尝试读一个不存在的变量(值)会报错!但是尝试给一个未使用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 =
;
var copyvalue = value; //将value赋给另一个变量
function addTotal(total
arg)
{
total+= arg; //total = total + arg 效果等同
}
//调用函数
传两个参数(大家可能会认为这个函数改变了全局变量的值
其实没有
函数用的也是对立拷贝)
addTotal(value
copyvalue);
if(value ==
) copyvalue =
;
document
write("total t" + value + "and copyvalue tt" + copyvalue+"<br />");
//最后输出:total
and copyvalue
按址传递
复制代码 代码如下:
var array = new Array("Javascccp");
var objarray = array;
function modifyArray(arr)
{
arr[
] = "JAVASCRIPT";
}
//没调用函数前
document
write(array[
] +"<br />");
//输出Javascccp;
//调用函数后
modifyArray(array);
document
write(array[
]+"<br />");
//输出大写JAVASCRIPT
//通过修改objarray会是一样的效果
objarray[
] = "Frank";
document
write(array[
]+"<br />");
//输出Frank;
小结:上面内容希望大家都不要错过对学习后面的知识还是很有帮助的!