Heim > Web-Frontend > js-Tutorial > 深入理解JS中的变量及作用域、undefined与null_javascript技巧

深入理解JS中的变量及作用域、undefined与null_javascript技巧

WBOY
Freigeben: 2016-05-16 16:57:15
Original
1179 Leute haben es durchsucht

Situation One

复制代码 代码如下:

<script><BR>  var i; //全局变量<BR>  //方法名是camel命名法<BR>  //方法里面的变量是局部变量 <P>  function sayHello(){<BR>  var x=100;<BR>  alert(x);<BR>  x++;<BR>  }<BR>  sayHello(); //输出100<BR>  alert(x); //报错,因为x是局部变量,访问不到<BR></script>

Situation Two
复制代码 代码如下:

<script><BR>function sayHello(){<BR>  var x=100;<BR>  if(x==100){<BR>    var y=x+1;<BR>    alert(y); //输出101<BR>  }<BR>  alert(y); //也输出101,在方法内部,不存在块级作用域,在C#中就不可以了!!! <P>  for(var i=0;i<2;i++){<BR>    alert(i)<BR>  } //在for循环里面定义的变量是块级作用域<BR>  alert(i); //因为i是局部变量,所以输出2 <P>}<BR>sayHello();<BR></script>

注:变量使用前可以不用var声明,这样的变量会被认为是“全局变量”,但很少这样用

关于undefined与null

有以下几种情况的,变量的值为undefined
1、变量定义,但没有赋值,则变量的值为undefined
2、调用的方法没有返回值,在返回的值为undefined
3、对象的属性值不存在,则返回值为undefined,如:document.ddd

Example1:

复制代码 代码如下:

var xx;
var yy=null;

if(xx==yy){

  alert('相等');

}

else{

  alert('不等');
}


输出结果为相等,因为在进行if判断时,浏览器会对xx及yy进行值的判断,因为两者都没有具体的值,认为他们都是false。
如果if判断中换成===[全等于符号],则输出不等!因为===表示要求xx及yy的数据类型和值都要相同才可以!

Example2:
复制代码 代码如下:

var xx=10
var yy='10';

if(xx==yy){

  alert('相等');
}

else{

  alert('不等');
}


输出相等,如果换成===,则输出不等

Example3:

复制代码 代码如下:

var n='10';
switch(n){
  case 10:

    alert('数字');
  break;

  case '10':

    alert('字符串');
  break;
}


输出 字符串
switch中的判断要考虑类型

总结:if中的判断是判断数值,不考虑类型

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage