1.利用NumberObj的toString(radix)方法获取随机数字字母字符串,radix是表示数字的基数,就是进制,如下所示

  1. var getRndAlphaNumStr = (len) => {
  2. var rndStr = '';
  3. for (; rndStr.length < len; rndStr += Math.random().toString(36).substr(2));
  4. return rndStr.substr(0, len);
  5. };
  6. getRndAlphaNumStr(10)
  7. "ugyjusoh2a"

2.禁止他人利用iframe形式加载你的网页,如下所示

  1. function banIframeLoading(){
  2. (window.location !== window.top.location)&&(window.top.location=window.location);
  3. }

3.浮点数取整,利用|0和~~位运算来做,性能相对parseInt要好些,如下所示

  1. function getInteger(num){
  2. console.time('~~计时器');
  3. for(var i=0;i<num;i++){
  4. ~~Math.random();
  5. }
  6. console.timeEnd('~~计时器');
  7.  
  8. console.time('|0计时器');
  9. for(var j=0;j<num;j++){
  10. Math.random()|0;
  11. }
  12. console.timeEnd('|0计时器');
  13.  
  14. console.time('parseInt计时器');
  15. for(var k=0;k<num;k++){
  16. parseInt(Math.random());
  17. }
  18. console.timeEnd('parseInt计时器');
  19. }
  20. getInteger(10000000)
  21. ~~计时器: 2608.639ms
  22. |0计时器: 2562.203ms
  23. parseInt计时器: 5111.675ms

4.不借助第三变量实现两个值的交换,如下所示

  1. function swap(a,b){
  2. a = [b,b=a][0];
  3. return [a,b];
  4. }
  5. console.log(swap(10,30));
  6. [30, 10]

5.因为全局变量undefined在函数作用域中可以被重新赋值,导致某些情况下利用undefined作比较时发生错误,因此需要获取原始undefined值,如下所示

  1. (function(){
  2. var undefined = 1;
  3. console.log(undefined);
  4. })()
  5. 1
  6. ------------------- 使用 void 0 来获取原始undefined----------
  7. (function(){
  8. console.log(!!void 0);
  9. })()
  10. false

5.利用Math.max方法求数组的最大值,如下所示

  1. function max(arr){
  2. return Math.max.apply(null,arr);
  3. }

6.数组随机洗牌

  1. function arrSuffle(arr){
  2. return arr.sort(function(){
  3. return Math.random()-0.5;
  4. });
  5. }
  6. console.log([2,3,199,20,45]);

7.利用正则表达式获取指定的cookie

  1. function getCookie(cKey){
  2. return document.cookie.match(new RegExp('(?:^|'+'\\s+|;+)'+cKey+'=([^;]*)','i'))[1];
  3. }

8.快速获取对象的属性

  1. function getObjKeys(obj){
  2. var arr = [];
  3. for(arr[arr.length] in obj);
  4. return arr;
  5. }

9.在前置括号的情况下,不会自动插入分号,如下所示

  1. var a = 1
  2. (a=1)
  3. VM2329:3 Uncaught TypeError: 1 is not a function(…)

 

Javascript一些实用技巧的更多相关文章

  1. 初学者学习JavaScript的实用技巧!

    Javascript是一种高级编程语言,通过解释执行.它是一门动态类型,面向对象(基于原型)的直译语言.它已经由欧洲电脑制造商协会通过ECMAScript实现语言标准化,它被世界上的绝大多数网站所使用 ...

  2. JavaScript 一些实用技巧

    快速创建从0到n的数字 let arr1 = [...(new Array(n)).keys()]; let arr2 = Array.from({length:n},(v, k) => k); ...

  3. javascript实用技巧、javascript高级技巧

    字号+作者:H5之家 来源:H5之家 2016-10-31 11:00 我要评论( ) 三零网提供网络编程. JavaScript 的技术文章javascript实用技巧.javascript高级技巧 ...

  4. 12个实用的 Javascript 奇淫技巧

    这里分享12个实用的 Javascript 奇淫技巧.JavaScript自1995年诞生以来已过去了16个年头,如今全世界无数的网页在依靠她完成各种关键任务,JavaScript曾在Tiobe发布的 ...

  5. JavaScript 实用技巧和写法建议

    1.前言 从大学到现在,接触前端已经有几年了,感想方面,就是对于程序员而言,想要提高自己的技术水平和编写易于阅读和维护的代码,我觉得不能每天都是平庸的写代码,更要去推敲,去摸索和优化代码,总结当中的技 ...

  6. 【JavaScript实用技巧(二)】Js操作DOM(由问题引发的文章改版,新人大佬都可)

    [JavaScript实用技巧(二)]Js操作DOM(由问题引发的文章改版,新人大佬都可!) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人 ...

  7. JavaScript函数作用域与对象以及实用技巧

    1. JS作用域 1.1 全局作用域和局部作用域 函数外面声明的就是 全局作用域 函数内是局部作用域 全局变量可以直接在函数内修改和使用 变量,使用var是声明,没有var是使用变量. 如果在函数内使 ...

  8. js基础进阶--编的实用技巧(一)

    我的个人博客:http://www.xiaolongwu.cn 在平时的开发中,编码技巧很重要,会让你少写很多代码,起到事倍功半的效果. 下面总结几种简单的技巧,大家共同学习一下 1. 利用+.-./ ...

  9. VUE基础实用技巧

    Vue以前听说过,有了解过一点.当时还在热衷于原生JavaScript去写一些方法的封装,不是为啥,就感觉这样很帅,后面多多少少接触了一些JQuery的用法,到现在为止,JavaScript原生封装的 ...

随机推荐

  1. 解决python编码格式错误问题

    一:前言 遇到问题:print输入汉字时提示错误信息 UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: o ...

  2. RN 项目导入WebStorm 组件没有依赖

    你需要在项目根目录   $ npm instal 恭喜你完成 但是依然报错 npm config set registry="registry.npmjs.org"  重新配置了一 ...

  3. MVC项目中ExecutionTimeout不生效的解决方案

    我们做web服务器端开发时,经常会遇到一个需求场景,因为某些耗时处理造成页面的响应处理时间超长,技术角度就想能否给页面处理程序一个指定的超时时间,服务端处理程序执行时间超过这个指定的超时时间则中断处理 ...

  4. css选择器万年不变的优先级和权重

    我们在使用CSS对网页元素定义样式时经常会遇到这种情况:要对一般元素应用一般样式,然后在更特殊的元素上覆盖它们.那么我们怎么样来保证我们所新定义的元素样式能覆盖目标元素上原有的样式呢? 在CSS中,会 ...

  5. Struts2登录小例子

    前面实现了一个数据显示的例子,下面我来实现以下使用Struts2登录 首先是配置不用过多解释 注意名字要和类名保持一致 因为实现的是action这个方法所以需要用action.log来跳转到类里面 解 ...

  6. 让IE6/IE7/IE8浏览器支持CSS3属性

    让IE6/IE7/IE8浏览器支持CSS3属性 一.下载 您可以狠狠地点击这里:ie-css3.htc,这个玩意儿是让IE浏览器支持CSS3表现的关键东东. 二.上面的是什么东西 首先说说.htc文件 ...

  7. Jexus 支持PHP的三种方式

    Jexus不仅支持ASP.NET,而且能够通个自带的PHP-FCGI服务以及PHP-FPM等方式灵活支持PHP而且还可以以.NET(Phalanger)方式支持PHP. PHP-FCGI服务支持PHP ...

  8. ABP框架理论学习之Debugging

    返回总目录 所有的官方ABP nuget包都是支持GitLink的,这意味着你可以在项目中轻松地调试所有的以Abp为前缀的Nuget包. 要开启这项支持,"启用源服务器支持"选项应 ...

  9. 从viewport发现小米手机参数不一致

    想要在移动web领域有所深造的小伙伴,第一关要过的就是逻辑像素与设备像素之间的关系. 初入移动web,一定要搞懂的几个单位(DPI.PPI.DP.PX 的详细计算方法及算法来源是什么?): dip(d ...

  10. .NET中提升UAC权限的方法总结

    [题外话] 从Vista开始,由于增加了UAC(用户账户控制,User Account Control)功能,使得管理员用户平时不再拥有能控制所有功能的管理员权限了,所以在调用很多比较重要的功能时需要 ...