JS中的变量及作用域、undefined与null详解

  次阅读 作者:智能小宝 来源:互联网 2016-01-27 15:52 我要评论(0)

本篇文章主要是对JS中的变量及作用域、undefined与null进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助

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:

代码如下:

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...