深入理解JS中的变量及作用域、undefined与null_Javascript教程-查字典教程网
深入理解JS中的变量及作用域、undefined与null
深入理解JS中的变量及作用域、undefined与null
发布时间:2016-12-30 来源:查字典编辑
摘要:SituationOne复制代码代码如下:vari;//全局变量//方法名是camel命名法//方法里面的变量是局部变量functionsa...

Situation One

复制代码 代码如下:

<script>

var i; //全局变量

//方法名是camel命名法

//方法里面的变量是局部变量

function sayHello(){

var x=100;

alert(x);

x++;

}

sayHello(); //输出100

alert(x); //报错,因为x是局部变量,访问不到

</script>

Situation Two

复制代码 代码如下:

<script>

function sayHello(){

var x=100;

if(x==100){

var y=x+1;

alert(y); //输出101

}

alert(y); //也输出101,在方法内部,不存在块级作用域,在C#中就不可以了!!!

for(var i=0;i<2;i++){

alert(i)

} //在for循环里面定义的变量是块级作用域

alert(i); //因为i是局部变量,所以输出2

}

sayHello();

</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中的判断是判断数值,不考虑类型

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类