我的个人博客:http://www.xiaolongwu.cn

接上篇文章

js编码的实用技巧(一)

5、合理利用||运算符

使用||可以作为参数之外的默认值,当第一个参数返回值为false时,那么第二个值就为默认值。

一般在面向对象思想中这么使用。

function User(name, age) {
this.name = name || "leonWu";
this.age = age || 29;
}
var user1 = new User();
console.log(user1.name); // leonWu
console.log(user1.age); // 29 var user2 = new User("delia", 28);
console.log(user2.name + " is my wife"); // delia is my wife
console.log(user2.age); // 28

6、三木运算符

看看下面的例子,我相信你就会立马理解了

var x = 10,b = null;
if (x > 5) {
b = 7;
} else {
b = 2;
}

这段代码用三木运算简写为

b = x > 5 ? 7 : 2;
//解释一下上面的代码
// 当x > 5 时返回7并赋值给b,反之则返回2赋值给b

7、判断相等时用 === 而不是 ==

因为== 和 != 在做判断时,会在某些情况下进行隐式类型转换,但是 === 和 !== 却不会,并且它们会同时对值大小和值类型进行比较,所以=== 和!== 要比== 和!=的处理速度快。

看例子

[5] == 5; //true
[5] === 5; //false
"5" == 5; //true
"5" === 5;//false
"" == 0; // true
"" === 0; //false
[] == "" //true
[] === "" //false

8、随即从数组中取一个元素

var items = [123, 81 , 'abc' , 234 , 781 , 'leonwu', 114, , 'delia' , 110 , 120];
var randomItem = items[Math.floor(Math.random() * items.length)];

稍微解释一下上面的代码

  1. Math.floor()这个方法为js内置的方法,向下取整,即Math.floor(2.9)结果为2,Math.floor(2.1)结果也为2。
  2. Math.random()为在[0-1)之间取一个随即浮点数,包括0但不包括1;

所以上面randomItem的结果是[0-9]之间的一个随即整数。

9、在指定的范围中取出一个随机整数

这个方法应该是上面第8条的加强版,只要理解上面的方法,那么这个方法理解起来就不会有难度。在这里多一嘴,很多东西靠死记硬背是记不住的,但是只要你理解了,那么你想忘记就比较难了。好了,不扯淡了,我们开始

上代码

//先看看下面这个方法,不理解不要紧,继续向下看你就会理解它

var a = Math.floor(Math.random() * (max - min + 1)) + min; 

//下面就让我们慢慢的理解上面这个方法是怎么来的

//先写出在[0-10]之间取随机整数的方法

var b = Math.floor(Math.random() * 10) //这个返回的是[0-10),不包括10,最大到9

 b = Math.floor(Math.random() * (10 + 1)); //这样就能取到[0-10]之间的随即整数了

//然后取一个[30-40]之间的随机整数

//我们把上面的任务分解为先取一个[0-10]之间的随机整数,然后再加上30,是不是就能满足我们上面的需求了,看代码

var c = Math.floor(Math.random() * (40-30 + 1)) + 30;

//那我们要取[max-min]之间的随机整数,代码是不是就为

var a = Math.floor(Math.random() * (max - min + 1)) + min;

//我们是不是已经理解了这段代码的意义呢,是不是想忘记都会很难呢?如果没理解就再多想想。

下图为Math对象的常用方法,以供大家学习参考

github资源地址:https://github.com/js编码的实用技巧(二).md

我的个人博客:http://www.xiaolongwu.cn

csdn博客地址:https://blog.csdn.net/wxl1555

如果您对我的博客内容有疑惑或质疑的地方,请在下方评论区留言,或邮件给我,共同学习进步。

邮箱:wuxiaolong802@163.com

js基础进阶--编码实用技巧(二)的更多相关文章

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

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

  2. js基础进阶--关于setTimeout的思考

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 先热身 看看下面的额代码会打印出什么? for (var i = 0; i < 5; i++) { setTimeout( ...

  3. js基础进阶--图片上传时实现本地预览功能的原理

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 最近在项目上加一个图片裁剪上传的功能,用的是cropper插件,注意到选择本地图片后就会有预览效果,这里整理一下这种预览效 ...

  4. SVG.js 基础图形绘制整理(二)

    一.折线 var draw = SVG('svg1').size(300, 300); //画折线 //使用字符串点 // var polyline=draw.polyline('0,0 100,50 ...

  5. js基础进阶--关于Array.prototype.slice.call(arguments) 的思考

    欢迎访问我的个人博客:http://www.xiaolongwu.cn Array.prototype.slice.call(arguments)的作用为:强制转化arguments为数组格式,一般出 ...

  6. js使用的一些实用技巧

    1.jquery中页面定时调用ajax方法 function SetContinueSend(param1,param2, func){ func.call(null,param1,param2) } ...

  7. JS基础入门篇(十二)—JSON和Math

    1.JSON JSON: 对象格式的字符串 轻量的数据传输格式 注意事项: 键名 需要 使用 双引号 包起来 JOSN有两个方法:JSON.parse和 JSON.stringify. JSON.pa ...

  8. c++实用技巧

    原地址:http://www.cnblogs.com/easymind223/articles/2576904.html 晚上的时间总是习惯性的在cnblogs逛街,今天又看到了好文章,其c++味道浓 ...

  9. 麒麟子Cocos Creator实用技巧

    大家好,我是麒麟子, 开源棋牌<幼麟棋牌-四川麻将>(泄漏版叫 <达达麻将>)作者,成都幼麟科技创始人. 自09年进入游戏行业以来,不知不觉已经度过了十个春秋. 曾经我也血气方 ...

随机推荐

  1. Python学习笔记 - 迭代Iteration

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- d = {'a': 1, 'b': 2, 'c': 3} for key in d: # 默认迭代是key ...

  2. mpi中程序在集群中的分发

    我们在开发mpi程序时,由于其是分布式程序,我们在单个节点上完成编码后,需要将代码拷贝到整个集群进行测试.集群之间的文件拷贝可以通过scp命令完成.但是scp命令是针对两个节点之间文件互传设计,为了将 ...

  3. Rest api简介

    理解和使用内容协商 我们的开发者在发送一个 REST API 请求的同时,根据应用场景,针对相同的资源,可能会期待不同的返回形式. 比如,我希望根据用户客户端语言,同一个资源的内容可以返回不同的语言. ...

  4. 【Qt编程】QWT在QtCreator中的安装与使用

    由于导师项目的需要,需要画图,二维+三维.三维图我用的是Qt+opengl,二维图我决定使用qwt工具库来加快我的项目进展,毕竟还有期末考试.关于Qt+opengl的使用有时间的话以后再介绍.     ...

  5. AngularJS进阶(六)AngularJS+BootStrap实现弹出对话框

    AngularJS+BootStrap实现弹出对话框 参考资料: http://angular-ui.github.io/bootstrap/#/modal https://www.zybuluo.c ...

  6. Shell Scripts - 条件语句,case语句,function功能

    修改之前的代码 1.判断 $1 是否为 hello,如果是的话,就显示 "Hello, how are you ?":     2.如果没有加任何参数,就提示使用者必须要使用的参数 ...

  7. PS 图像调整算法— —渐变映射

    这个调整简单来说就是先建立一张lookup table, 然后以图像的灰度值作为索引,映射得到相应的颜色值.图像的灰度值是由图像本身决定的,但是lookup table 却可以各种各样,所以不同的lo ...

  8. HBase 健康检查工具

    在HBase运维中 最常用的工具就是hbck. 查看整个集群的表状况.如果region很多,建议慎重使用,会比较慢,而采用(3). (1)hbase  hbck 详细显示集群状况. (2)hbase ...

  9. 【Android 应用开发】BluetoothServerSocket详解

    一. BluetoorhServerSocket简介 1. 继承关系 public final class BluetoothServerSocket extends Object implement ...

  10. ARP 协议抓包分析

    ARP(Address Resolution Protocol)- 地址解析分析 ARP 协议是根据IP地址获取物理地址的一个TCP/IP协议. 当PC1 想与 PC2 进行通信时,需要同时知道PC2 ...