• 判断一个变量是否申明
  • if (typeof v === "undefined") {
    // ...
    }
  • 判断一个变量是否是函数
  • function f() {}
    typeof f
    // "function"
  • 区别一个变量是数组还是对象
  • var o = {};
    var a = []; o instanceof Array // false
    a instanceof Array // true
  • base64转码 (btoa 直接使用中文会出错)
  • var string = 'Hello World!';
    btoa(string) // "SGVsbG8gV29ybGQh"
    atob('SGVsbG8gV29ybGQh') // "Hello World!"
    function b64Encode(str) {
    return btoa(encodeURIComponent(str));
    } function b64Decode(str) {
    return decodeURIComponent(atob(str));
    } b64Encode('你好') // "JUU0JUJEJUEwJUU1JUE1JUJE"
    b64Decode('JUU0JUJEJUEwJUU1JUE1JUJE') // "你好"
  • 查看对象所有属性(本身的属性,不包含继承的)
  • var o = {
    key1: 1,
    key2: 2
    }; Object.keys(o);
    // ['key1', 'key2']
  • 判断对象是否有某个属性
  • var o = new Object();
    o.hasOwnProperty('toString') // false 'toString' in o // true
    hasOwnProperty 判断对象本身 ,而 in 会判断对象父类
  • 只想遍历对象自身属性
  • for (var key in person) {
    if (person.hasOwnProperty(key)) {
    console.log(key);
    }
    }
  • 遍历类数组对象
  • // for循环
    function logArgs() {
    for (var i = 0; i < arguments.length; i++) {
    console.log(i + '. ' + arguments[i]);
    }
    } // forEach方法
    function logArgs() {
    Array.prototype.forEach.call(arguments, function (elem, i) {
    console.log(i+'. '+elem);
    });
    }
  • 数组的遍历
  • var a = [1, 2, 3];
    a.foo = true; for (var key in a) {
    console.log(key);
    }
    //
    //
    //
    // foo

    for ... in 循环会遍历非数组key

  • // for循环
    for(var i = 0; i < a.length; i++) {
    console.log(a[i]);
    }
    var colors = ['red', 'green', 'blue'];
    colors.forEach(function (color) {
    console.log(color);
    });
  • 获取当前时间戳
  • var timestamp=new Date().getTime();
  • 时间转时间戳
  • // 也很简单
    var strtime = '2014-04-23 18:55:49:123';
    var date = new Date(strtime); //传入一个时间格式,如果不传入就是获取现在的时间了,这样做不兼容火狐。
    // 可以这样做
    var date = new Date(strtime.replace(/-/g, '/')); // 有三种方式获取,在后面会讲到三种方式的区别
    time1 = date.getTime();
    time2 = date.valueOf();
    time3 = Date.parse(date); /*
    三种获取的区别:
    第一、第二种:会精确到毫秒
    第三种:只能精确到秒,毫秒将用0来代替
    比如上面代码输出的结果(一眼就能看出区别):
    1398250549123
    1398250549123
    1398250549000
    */;
  • 时间格式化
  • function timetrans(date){
    var date = new Date(date*1000);//如果date为10位不需要乘1000
    var Y = date.getFullYear() + '-';
    var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
    var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
    var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
    var m = (date.getMinutes() <10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
    var s = (date.getSeconds() <10 ? '0' + date.getSeconds() : date.getSeconds());
    return Y+M+D+h+m+s;
    }
  • 对一个数进行取整
  • 2.9 | 0 //
    -2.9 | 0 // -2 ~~2.9 //
    ~~47.11 //

    使用否运算取整,是所有取整方法中最快的一种

JavaScript 小技巧汇总的更多相关文章

  1. 12个非常实用的JavaScript小技巧

    在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是 ...

  2. 11个不常被提及的JavaScript小技巧

    这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略. 1.过滤唯一值 Set类型是在 ES6中新增的,它类似于数组,但 ...

  3. [转]11个教程中不常被提及的JavaScript小技巧

    原文地址: https://www.cnblogs.com/ld1024/p/10723827.html 这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日 ...

  4. 11个教程中不常被提及的JavaScript小技巧

    这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略. 1.过滤唯一值 Set类型是在ES6中新增的,它类似于数组,但是 ...

  5. 常用的一些javascript小技巧

    (转载)常用的一些javascript小技巧: http://bbs.blueidea.com/thread-2201069-1-1.html

  6. 12个十分实用的JavaScript小技巧

    12个非常实用的JavaScript小技巧 在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候 ...

  7. 12个非常有用的JavaScript小技巧

    在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是 ...

  8. 8个Javascript小技巧

    1. 使用 + 字符可以转换成数字 比如要把一个字符串数字转换成数字,你可能会这样做: var one = '1'; var two = '2'; var numberOne = Number(one ...

  9. 8个Javascript小技巧,让你写的代码有腔调

    如果你想确保你的JavaScript在大多数浏览器和移动设备中都可以工作,那么我从大漠等大神指导,原来可以使用f2etest,也可以使用Endtest,browserstack等 1. 使用 + 字符 ...

随机推荐

  1. swift 手势之UIPanGestureRecognizer

  2. linux yum安装mongodb

    1.yum -y install mongodb-server  mongodb 2.service mongod start                     #启动mongodb 服务 3. ...

  3. U盘启动安装Ubuntu

    1.UltraISO制作USB启动盘 2.打开U盘目录下的\syslinux\syslinux.cfg, 将default vesamenu.c32注释为 # default vesamenu.c32

  4. eclipse 中执行 main 函数如何添加参数

    我们通常执行 main 函数都是直接在类界面 右键 选择 Run As --> Java Application 但是如何 执行时带有参数呢? 右键 --> Run As --> R ...

  5. SpringMVC 学习-如何搭配使用 Velocity 页面模板

    一.快速搭建 Velocity 框架 1. 加入所需 Jar 包 <dependency> <groupId>org.apache.velocity</groupId&g ...

  6. zencart 后台目录产品黄色icon_yellow_on.gif 解决方案

    解决方法,导入时候发现 更新成功! - 型号: as NO.1209 就是重复model 文件位置:manager\includes\modules\category_product_listing. ...

  7. debian下安装repo

    1.去google网站上下载repo脚本(用php语言写成的脚本) https://gerrit.googlesource.com/git-repo/+/stable/repo 可以将脚本复制下来并保 ...

  8. Entity Framework技巧系列之十四 - Tip 56

    提示56. 使用反射提供程序编写一个OData Service 在TechEd我收到一大堆有关将数据作为OData暴露的问题. 到目前为止你大概知道可以使用数据服务与Entity Framework将 ...

  9. C# WebBrowser函数互相调用

    在使用C#开发winform程序过程中,我们经常会碰到嵌入了一个WebBrowser的浏览器控件.很多时候,我们需要在程序里控制网页的显示方式,或者调用网页当中的某个JS函数,反过来,也有可能网页也需 ...

  10. OpenCV ——背景建模之CodeBook(1)

    1,CodeBook算法流程介绍 CodeBook算法的基本思想是得到每个像素的时间序列模型.这种模型能很好地处理时间起伏,缺点是需要消耗大量的内存.CodeBook算法为当前图像的每一个像素建立一个 ...