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 +"
");
}
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 +"
");
//输出:Createmoreto hope is :have more money to much
}
createmoreto();//调用
document.write("Createmore hope is :" +hope +"
");
//输出:Createmore hope is :have more money
}
createmore(); //调用
javascript:传值和传址
这里也是比较重要的概念!不要漏了。
|
传值 |
传址 |
复制 |
实际复制的值,存在不同的、独立的拷贝。 |
复制的只是对数字的引用。如果通过这个新的引用修改了数值,这个改变对最初的引用来说也是可见的。 |
传递 |
传递给函数的是值的独立拷贝对它的改变在函数外没有影响 |
传递给函数的是对数值的引用,如果函数通过传递给它的引用修改了数值,这个改变也是可见的。 |
比较 |
比较这两个对立的值,通常逐字节的比较,以判断是否相等 |
比较的是两个引用,以判断它们引用的是否是同一个数值。 |
JavaScript: 基本型と参照型
JavaScript の基本的なルールは次のとおりです。基本型は値渡しによって操作され、参照型はアドレス渡しによって操作されます。 (値型とは何か、参照とは何かについては、以前の記事を参照してください)
値渡し
var value = 1;
var copyvalue = value; //値を別の変数に代入
function addTotal(total) ,arg)
{
total = arg; //total = total arg は
と同じ効果があります }
//関数を呼び出して 2 つのパラメータを渡します (この関数は、この関数は逆の copy)
addTotal(value,copyvalue);
if(value == 1) copyvalue = 2;
document.write(" total t" value "and copyvalue tt" copyvalue "
");
//最終出力: total 1and copyvalue 2
アドレスで渡す
var array = new Array("Javascccp" );
var objarray = array;
functionmodifyArray(arr)
{
arr[0] = "JAVASCRIPT";
}
//関数を呼び出す前
document.write(array[0] "
//出力 Javascccp;
//関数呼び出し後
modifyArray(array);
document.write( array[0] "
");
//大文字の JAVASCRIPT を出力
//objarray
を変更することで同じ効果が得られます objarray[0] = "Frank";
document.write(array[0] "
");
//出力 Frank;
概要: 皆さんも上記の内容を見逃さないでください。以下の知識を学ぶのに非常に役立ちます。