JavaScript 大杂烩

代码分享 lc_soul 21次浏览 已收录 0个评论

避免污染全局变量

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"
// }'

畅享前端 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明JavaScript 大杂烩
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址