javascript中变量与函数同名

       javascript中变量与函数同名 ,以前没注意过这个问题,今天写代码的时候突然不小心写的函数名和变量的名字同名了!导致程序没办法正确运行!

下面直接贴上我的javascript代码!

/*自定义的调试小工具*/

//这是控制台的开关按钮(true表示开启,false表示关闭)
var CONSOLE_ENABLE = true; //讲CONSOLE_ENABLE变量设置为true则使用控制台,否则不使用控制台

/*不能把变量名字取为console,因为console是浏览器控制台打印日志的关键字, 正如console.log("打印日志内容")*/
//var console = null;
var myConsole = null;

var debugInfo = "<font color='red'>**********************</font><font color='blue'>console(控制台调试信息)</font><font color='red'>**********************</font>";

var cleanConsole = "  <input type='button' value='清空console' οnclick='myCleanConsole()'>";

//在控制台(控制台即div层)中输出调试信息
function debug(text){
	if (!CONSOLE_ENABLE) {
		return;
	}
	if (myConsole == null) {
		//如果没有控制台,则初始化控制台
		initConsole();
	}
	//建议以后最好全部使用innerHTML(innerHTML浏览器兼容性比较好),不要使用innerText
	myConsole.innerHTML += text;
	myConsole.appendChild(document.createElement("BR"));
	//scrollTop 位于对象最顶端和窗口中可见内容的最顶端之间的距离。
	//offsetHeight 获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度。
	myConsole.scrollTop = myConsole.offsetHeight;
}

//初始化控制台div层的样式
function initConsoleCSS(){
	
	
	/*
	 * 在页面中直接写上css,页面的javascript特效正常,但是通过dom的方式动态加载css文件,页面的javascript特效会有闪动,这个问
	 * 题我在网上找了些解决方法,但是还是没解决掉页面闪动的问题,所以我暂时还没想到办法解决,所以这个问题先放一放,有时间再解决和研究这个问题
	 * 
	 */
	
	var linkNode = document.createElement('link');
	linkNode.rel="stylesheet";
	linkNode.type="text/css";
	linkNode.href="css/console.css";
	var firstScriptNode = document.getElementsByTagName('script')[0];
	document.getElementsByTagName('head')[0].insertBefore(linkNode, firstScriptNode);
}

//初始化控制台(没有样式的样子忽然一闪而过的问题,一闪而过之后又有了样式。这是个问题?)
function initConsole(){
	initConsoleCSS();
	/*
	var linkNode = document.createElement('link');
	linkNode.rel="stylesheet";
	linkNode.type="text/css";
	linkNode.href="console.css";
	var firstScriptNode = document.getElementsByTagName('script')[0];
	document.getElementsByTagName('head')[0].insertBefore(linkNode, firstScriptNode);
	*/
	myConsole = document.createElement("div");
	myConsole.className = "consoleDiv";
	myConsole.innerHTML = debugInfo + cleanConsole;
	myConsole.innerHTML += "<br>";
	document.documentElement.lastChild.appendChild(myConsole);
	
	/*
	var pageLastNode = document.documentElement.lastChild;
	var divNode = "<div class='consoleDiv'>" + debugInfo + cleanConsole + "<br></div>";
	pageLastNode.innerHTML += divNode;
	*/
}

/*
 * javascript中变量与函数同名 
 *具体可参考网页https://segmentfault.com/q/1010000003951963
 *https://www.cnblogs.com/bugda/p/6036282.html
  https://segmentfault.com/q/1010000003825413
 1)函数声明会置顶
 2)变量声明也会置顶
 3)函数声明比变量声明更置顶:)
 4)变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置
 5)声明过的变量不会重复声明
 */
//清空控制台(console)信息(有个问题需要注意:javascript中不要把变量名和方法名写成一样的名字,容易出问题)
function cleanConsole(){
	myConsole.innerHTML = debugInfo + cleanConsole + "<br>";
}


function myCleanConsole(){
	myConsole.innerHTML = debugInfo + cleanConsole + "<br>";
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值