当前位置: 首页 > Web前端 > HTML

javascript入门教程(二):变量

时间:2023-04-02 17:00:12 HTML

大家好,今天开始正式讲讲javascript的语法。js中的变量一般使用var来声明(es6中的let不在本教程的讨论范围内),可以用来定义任何类型的变量。如果变量只被定义而没有被赋值,则该变量默认为undefined。变量a=100;varb="你好,世界";varc=true;变量提升在js中,用var定义的变量会有提升的效果,一般会把变量提升到作用域的顶部。简单的说,如果变量在一个函数中,它会被提升到函数的顶部,如果它在全局作用域(窗口)中,它会被提升到所有代码的顶部。这是一个例子:console.log(a);vara=100;//输出结果是undefined这里实际真正的代码是:vara;console.log(a);a=100;因为a被提升到顶部并没有被赋值,所以最后会输出undefined,不影响严格模式下的变量提升。(改进:在js中多次声明一个变量,只有最后一次声明有效)无块级作用域一对花括号中的任何语句集合都属于一个块,其中定义的所有变量在代码块外是不可见的,我们称之为块级作用域在java、c等语言中,块级作用域的作用是显而易见的,比如下面的代码:#includevoidmain(){inti=2;我-;如果(i){intj=3;}printf("%d/n",j);}运行这段代码,会发生错误。可见C语言具有块级作用域,因为j定义在if语句块中,所以在块外是无法访问的。但是js中不是这样的:for(vari=0;i<3;i++){}console.log(i);//输出3所以在js中没有块级作用域,它只有函数function域,函数内部用var定义的变量不能被外部访问,因为函数调用结束后变量会自动销毁。(提示:在函数内部不使用var直接声明的变量会默认为全局变量,例如:test=100;这个test在函数外部还是可以访问的,因为默认是全局变量,但是在函数内部这样声明一个变量严格模式会出错)那么如何实现块级作用域呢?js中有一个函数是立即执行的,里面定义的变量一般不会泄露给外界。由于我这里没有讲到功能,所以只稍微提一下,以后再说。我只是整理了一下js各部分的重点。细节还是需要自己去阅读,比如关键字、注释、区分大小写等,这套教程只适合碎片化时间阅读。我对收获很满意。