前言:感觉自己已经好久好久没有写博客了,最近都是在写在线笔记比较多。现在来到新公司了,昨天刚刚完成一个项目所以今天有空研究研究一下前端方面的技术。下午在看一个游戏代码的时候,发现了几个别人留下的不错的代码小技巧。譬如说取整问题,随机颜色问题。其实这些问题都不大,但是仔细研究一下还是别有洞天,对于提高前端开发方面的理解还是很有帮助的。


取整问题:

  1、常规方法:

    Math.floor(x),返回小于等于x,且最接近x的整数;

         Math.floor(1.2);//1

       Math.floor(-2.1);//-3

    Math.ceil(x),返回大于等于x,且最接近于x的整数。

         Math.ceil(1.2);//2

       Math.ceil(-2.1);//-2

  以上这两个没什么好解释的,比较容易理解。基本上就是Math对象的方法调用而已,参数主要是针对number基本数据类型的。

  2、一般方法:

    使用parseInt(x),这是一个预置的全局函数,可解析一个字符串,并返回一个整数。

         parseInt("12");//12

       parseInt("12abc");//12

       parseInt(12.345);//12

       parseInt(-12.345);//-12

       parseInt("12.333abc");//12

       parseInt("abc");//NaN

       typeof(parseInt("12abc"));//"number"

       parseInt(12.345,8);//10,八进制表示

    注意,当parseInt()函数的参数是正数时,则下取整;如果是负数时,则上取整。简而言之就是,parseInt只会取string或者number参数的整数部分。另外,当字符串首位不是一个数字时,会返回NaN;反之则一直解析字符串,直到遇到非数字时才会停止,并返回前面数字的整数部分。同时parseInt()还接受第二个参数,参数为解析的数字的基数(即多少进制),该值介于 2 ~ 36 之间。

  3、特殊方法:

    使用"|"、">>" 、">>>"、"^"、"<<"等二元位操作符,操作0位。

      12.345 | 0;//12

      -12.345 | 0;//-12

      12.345 ^ 0;//12

      12.345 >> 0;//12

      ……

  由于浮点数是不支持位运算的,所以小数部分将不会处理。可能是JS语言(其他编程语言也是)机制的原因,会直接把小数部分“处理”掉,直接返回整数部分而不会报错。


随机颜色问题:

   var b = Math.random() * 16777215 |0 ;

   var color = "#" + b.toString(16);

   var div = document.getElementById("div");

   div.style.backgroundColor = color;

  解释:

    16777215,首先这个数字是颜色白色的十进制表示,它等于2的24次幂减1。为什么是16777215呢?由于颜色计数跟内存一样,是由0开始的。我们平时使用的#000000这种是十六进制表示法,它由三组颜色构成,各占两位十六进制数。也就是(255,255,255),将它转换为二进制的话就是3个八位二进制(即24位)。所以#000000(白色)的十进制值就等于2的24次方减一。

    找到了对应的十进制数后,通过与随机方法相乘以及跟0进行按位或操作进行取整。之后在通过number数据类型的方法toString()把参数设为16,即将该数据转换回十六进制,然后拼接“#”字符就能得到了一组随机的16进制颜色值

JS中取整以及随机颜色问题的更多相关文章

  1. JavaScript进阶(五)js中取小数整数部分函数

    js中取小数整数部分函数 丢弃小数部分,保留整数部分 js:parseInt(7/2) 向上取整,有小数就整数部分加1 js: Math.ceil(7/2) 四舍五入 js: Math.round(7 ...

  2. js中取小数整数部分函数;取小数部分

    1.丢弃小数部分,保留整数部分 parseInt(23.56); 结果:23 2.向上取整,有小数就整数部分加1 Math.ceil(23.56) 结果:24 3,四舍五入. Math.round(2 ...

  3. js 向上取整、向下取整、四舍五入

      js 向上取整.向下取整.四舍五入 CreateTime--2018年4月14日11:31:21 Author:Marydon // 1.只保留整数部分(丢弃小数部分) parseInt(5.12 ...

  4. js 除法 取整

    js 除法 取整 1.丢弃小数部分,保留整数部分 js:parseInt(7/2) 2.向上取整,有小数就整数部分加1 js: Math.ceil(7/2) 3,四舍五入. js: Math.roun ...

  5. js 小数取整,js 小数向上取整,js小数向下取整

    js 小数取整,js 小数向上取整,js小数向下取整 >>>>>>>>>>>>>>>>>>& ...

  6. 在js中取选中的radio值

    在js中取选中的radio值 <input type="radio" name="address" value="0" /> & ...

  7. JS 实现取整

    Js 常用数值函数(Math,parseInt)取整   1.丢弃小数部分,保留整数部分parseInt(5/2) 2.向上取整,有小数就整数部分加1Math.ceil(5/2) 3,四舍五入.Mat ...

  8. js 小数取整的函数

    1.丢弃小数部分,保留整数部分 js:parseInt(7/2) 2.向上取整,有小数就整数部分加1 js: Math.ceil(7/2) 3,四舍五入. js: Math.round(7/2) 4, ...

  9. js中取session的值

    在js中貌似不能取session的值,我在后台设置的session一直拿不到,于是用间接的方式拿到session的值. 首先在jsp中嵌入java代码,用java设置一个变量来取session值,再在 ...

随机推荐

  1. Linux - 终端语言设置

    查看当前终端用户的语言设置 locale - get locale-specific information : locale |grep LANG 改变当前终端用户的语言设置(临时生效) 中文UTF ...

  2. 35款加速网站开发的 CSS 开发工具

    网络有很很多的 CSS 工具和教程可用,它可以帮助设计人员和开发人员轻松.快速地学习 CSS 技术.这些工具中在高效开发 Web 应用程序中发挥重要作用. 在这篇文章中,我们收集了35个最好的 CSS ...

  3. Activity间中使用Intent传值

    主页面用来输入一个值传入第二个页面显示,关闭第二个页面返回一个值 主页布局: <RelativeLayout xmlns:android="http://schemas.android ...

  4. Windows Azure Virtual Network (7) 设置Azure Virtual Machine固定公网IP (Virtual IP Address, VIP) (2)

    <Windows Azure Platform 系列文章目录> 本文介绍的是,当用户在创建Azure Virtual Machine的时候,忘记绑定公网IP,需要重新绑定公网IP的具体操作 ...

  5. HTML5 input事件检测输入框变化

    之前一直用change事件来监听输入框内容是否发生变化,只有当输入框失去焦点时才会触发,没想到html5还有个input事件,只要输入框内容发生变化就会立即触发,既然有这么好的东西我们干嘛放着不用呢, ...

  6. 30天C#基础巩固----查找XML文件元素

    一:XML文档 了解xml文档. 利用代码来创建XML文档. //引用命名空间+using System.Xml; XmlDocument xdoc=new XmlDocument(); XmlDec ...

  7. 把DataTable转换为泛型List<T>或是JSON

    在开发ASP.NET Web API或ASP.NET MVC时,我们从数据库得到的数据往往是DataSet或是DataTable.为了能让前端JQuery能方便使用至这些数据,我们需要把这些数据转换为 ...

  8. Newtonsoft.Json 用法

    Newtonsoft.Json 是.NET 下开源的json格式序列号和反序列化的类库.官方网站: http://json.codeplex.com/ 使用方法 1.首先下载你需要的版本,然后在应用程 ...

  9. javascript常用判断写法

    js验证表单大全,用JS控制表单提交 ,javascript提交表单 目录:1:js 字符串长度限制.判断字符长度 .js限制输入.限制不能输入.textarea 长度限制 2.:js判断汉字.判断是 ...

  10. 身份证验证合法性js--已验证

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...