javascript入门教程(二):变量

人人好,我从今天开始就会正式讲javascript的语法方面。
变量

js中的变量平常运用var来声明(es6的let不在本教程议论范围内),能够用来定义任何品种的变量,假如只对变量进行了定义而没有赋值,如许变量会默以为undefined。

var a=100; 
var b="hello,world";
var c=true;


变量提拔

在js中,用var定义的变量会涌现提拔的效果,变量平常会提拔到地点作用域的最顶部,简朴来讲就是,假如变量在函数中,就会提拔到函数最顶部,假如在全局作用域(window)中,就会提拔到一切代码的最顶部。
这里给一个例子:
 console.log(a);
 var a=100;
//输出效果为undefined

这里实际上真正的代码是:

var a;
console.log(a);
a=100;

因为a提拔到顶部后未被赋值,所以末了会输出undefined,而且亲测严厉形式下变量提拔不会受到影响。
(提拔:在js中屡次声明一个变量,只要末了一次声明有用)

没有块级作用域

任何一对花括号中的语句集都属于一个块,在这当中定义的一切变量在代码块外都是不可见的,我们称之为块级作用域
在java和c等言语中,块级作用域的效果很明显,比方下面这段代码:

#include <stdio.h> 
void main() 
{ 
int i=2; 
i--; 
if(i) 
{ 
int j=3; 
} 
printf("%d/n",j); 
} 

运转这段代码,会涌现毛病。能够看到,C言语具有块级作用域,因为j是在if的语句块中定义的,因而,它在块外是无法访问的。

但是在js中就不是如许了:

for(var i=0;i<3;i++){}
console.log(i); //输出3

所以在js内里并没有块级作用域,它只要函数作用域,在函数内部用var定义的变量不能被外部访问到,因为函数挪用完毕后,变量会被自动烧毁。

(提醒:在函数内部不必var直接声明的变量会默以为全局变量,比方:test=100;这个test在函数外部依旧能被访问到,因为默以为全局变量,但是在严厉形式下如许声明一个变量会失足)

那末怎样完成块级作用域呢?
在js中有一种马上实行的函数,在内里定义的变量平常不会泄漏到外界,因为这里还没有讲函数,所以我只轻微提一下,今后再好好讲。

我只是把js每一个部份的重点理清一下,详细的照样须要人人本身去看,比方关键字,解释,辨别大小写等等,这套教程只适合在细碎时候去看,假如人人能有所收成,我就很满足啦。

    原文作者:尹光耀
    原文地址: https://segmentfault.com/a/1190000006846113
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞