竟然有这么变态的语言,函数之间居然可以私通
今天用到JavaScript语言, 被这种语言的规则震惊了.
function a(){ for(i=0;i<10;i++){};}var i = 5;a();document.writeln(i);//输出居然是10, 也就是说, 函数内部的i其实就是全局这个i. 变态的是, JavaScript有很多内置全局变量,再加上自己使用的, 这局部变量如果不声明的话, 你知道哪个就和全局变量相同了. 可是JavaScript居然就不要求变量需要声明. function a(){ for(i=0;i<20;i++){ } } function b(){ for(i=0;i<3;i++){ a(); } return i; } document.writeln(b());"use strict";