>  기사  >  웹 프론트엔드  >  JavaScript Basics_javascript 기술의 변수 범위, 값 전송 및 주소 전송에 대한 간략한 소개와 예

JavaScript Basics_javascript 기술의 변수 범위, 값 전송 및 주소 전송에 대한 간략한 소개와 예

WBOY
WBOY원래의
2016-05-16 17:31:011087검색

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는
과 동일한 효과를 가집니다. }
//함수를 호출하고 두 개의 매개변수를 전달합니다(이 함수가 하지만 그렇지 않습니다. 이 함수는 반대 복사도 사용합니다.
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;
function 수정Array(arr)
{
arr[0] = "JAVASCRIPT";
}
//함수 호출 전
document.write(array[0] "
//Javascccp;
//함수 호출 후
수정Array(array);
document.write( array[0] "
");
//대문자 JAVASCRIPT
//objarray를 수정해도 동일한 효과를 얻을 수 있습니다
objarray[0] = "Frank";
document.write(array[0] "
");
//Output Frank;

요약: 위 내용을 모두가 놓치지 않기를 바랍니다. 다음 지식을 배우는 데 여전히 매우 도움이 됩니다!
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.