JavaScript 大杂烩
避免污染全局变量
var foo = 12; console.log(foo);
上面的代码等同于
window.foo = 12;
如下代码会覆盖系统默认print函数,会让网页无法打印:
function print () {
// do something
}
print();
我们只需要简单的做一下变更,就能避免污染全局变量:
(function () {
var foo = 12;
console.log(window.foo);
// → undefined
console.log(foo);
// → 12
})();
如果更进一步,可以将window等全局变量当作参数传到function:
(function (global, doc) {
global.setTimeout(function () {
doc.body.innerHTML = "Hello!";
}, 1000);
})(window, document);
值类型转换
// 任何值转为Number
var foo = "12";
var myNumber = +foo;
// → 12
var negativeFoo = -foo;
// → -12
// 对象转为数组
var args = { 0: "foo", 1: "bar", length: 2 };
Array.prototype.slice.call(args)
// → [ 'foo', 'bar' ]
// 转为布尔值
/// 正正得正
var t = 1;
var f = 0;
!!t
// → true
!!f
// → false
/// 正负得负
!t
// → false
!f
// → true
// 转为字符串
var foo = 12;
"" + foo
// → "12"
foo = { hello: "world" };
JSON.stringify(foo);
// → '{ "hello":"world" }'
JSON.stringify(foo, null, 4); // 格式化
// →
// '{
// "hello": "world"
// }'
阅读剩余
版权声明:
作者:lc_soul
链接:https://blog.lcsoul.cn/archives/237
文章版权归作者所有,未经允许请勿转载。
THE END

