1.作用域
var 在for循环中会污染外层(推荐使用let)
同级变量污染,解决办法:立即执行函数
例:
1 (function() { 2 var $ = (window.$ = {}); 3 #.web = "rencai" 4 var url = "rencai.com" 5 $.getUrl = function() { 6 return url 7 } 8 }.bind(window)()) 9 10 推荐: 11 { 12 let $ = (window.$ = {}); 13 #.web = "rencai" 14 let url = "rencai.com" 15 $.getUrl = function() { 16 return url 17 } 18 }
2.const 声明的是常量,有作用域
正确例:
const URL = “baidu” { const URl = “weibo” }
3."var screenLfet = 10;"全局定义某些特殊变量(screenLeft)会覆盖window.screenLeft,而 let 不会污染 window (推荐使用let)
4.重复声明变量解决办法:
一、Object.freeze 冻结变量 ;
二、 使用严格模式(“use strict”)会有重复变量错误提示
5. 严格模式(“use strict”) 有作用域之分