自学去

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 70|回复: 0

Javascript常用的11个小技巧整理

[复制链接]

该用户从未签到

157

主题

157

帖子

1027

积分

等待验证会员

积分
1027
发表于 2017-1-5 23:01:39 | 显示全部楼层 |阅读模式
Javascript常用的11个小技巧整理 本文和大家分享的主要是javascript中常用的一些神乎其神的小技巧,希望对大家学习javascript http://www.maiziedu.com/course/229/有所帮助,一起来看看吧。
  1. 字符串转换为数字
  var a = "123";
  console.log(+a); // 123
  console.log(typeof +a); // number
  // 同样可用于日期转换为数值:
  var b = +new Date(); // 1468545682168
  2. 数值向下取整
  var a = ~~3.14; // 3
  var b = 3.14>>0; // 3
  var c = 3.14|0; // 3
  3. 字符串转换为数值并取整
  var a = "3.14"|0; // 3
  var b = "3.14"^0; // 3
  4. 函数设置默认值
  function func(arg){
  var arg = arg || "default";
  // arg 为 undefined, null, "", 0, false, NaN 时最后都得到"default"
  }
  5. 变量值交换
  var a = 1,
  b = 2;
  a = [b, b = a][0];
  console.log(a); // 2
  console.log(b); // 1
  6. 使用 for in 遍历对象取到属性名与属性
  var obj = {
  a: 1,
  b: 2
  }
  for(var i in obj) {
  console.log("obj." + i + " = " + obj[i]);
  }
  // output: obj.a = 1
  // obj.b = 2
  7. 截断数组
  var arr = [1, 2, 3, 4, 5, 6];
  arr.length = 3;
  console.log(arr); // [1, 2, 3]
  8. 提高遍历较大Enumerable数据的性能
  var arr = [1, 2, 3, 4, 5, 6, ...];
  var len = arr.length; // 缓存arr.length
  for(var i = 0; i < len; i++) {
  console.log(arr[i]);
  }
  // 或者(推荐使用)
  for(var i = 0, a; a = arr[i++];) {
  console.log(a);
  }
  9. 使用 && 替代单一条件判断
  // 你可能这样写过
  if(!token) {
  login();
  }
  // 其实这样也可以
  !token && login();
  10. 检测 对象/数组 中是否有指定 属性/元素
  var CURD = {
  add: function() {},
  delete: function() {},
  edit: function() {}
  }
  console.log("add" in CURD); // true
  console.log("find" in CURD); // false
  var arr = [1, 2, 3];
  console.log(1 in arr); // true
  console.log(6 in arr); // false
  11. 通过闭包调用setTimeout
  for(var i = 0; i < 10; i++) {
  setTimeout(function(){
  console.log(i); // 10 10 10 ...
  },500);
  }
  for(var i = 0; i < 10; i++) {
  (function(i){
  setTimeout(function(){
  console.log(i); // 0 1 2 3 ...
  },500)
  })(i);
  }

来源:SegmentFault
本主题由 小贝 于 半小时前 移动
灌水请到灌水区!请不要恶意灌水!否则封!
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

广告服务|关于我们|手机版|小黑屋|手机客户端|自学去 ( 蜀ICP备12031052号-3 )

GMT+8, 2017-8-24 05:26 , Processed in 0.380904 second(s), 34 queries .

快速回复 返回顶部 返回列表