资讯专栏INFORMATION COLUMN

JavaScript 的一些SAO操作

sshe / 572人阅读

摘要:判断检测最短方法解析在标准浏览器下下拆解步骤逗号后位置初始化为未省略非省略了之后空位隐式计算先转化为然后进行取反当然还有很多方式这里稍微列举一下位运算的神奇应用两个值比如下面几种反向判断赋值如果那就让如果那就让

IE判断检测

</>复制代码

  1. // IE 678 最短方法
  2. var ie = !-[1,];

解析 :
在标准浏览器下
false

IE 6 7 8 下:
true

拆解步骤

/ IE678 /
[-1,] //[object Array] [-1, undefined] 逗号后位置初始化为undefined未省略 2
-[-1,] //NaN
/ 非IE /
[-1,] // [-1] 省略了 , 之后空位 1
-[-1,] // 1 隐式计算 先转化为number然后进行 --取反

当然还有很多方式,这里稍微列举一下

</>复制代码

  1. var ie = /*@cc_on!@*/false
  2. var ie//@cc_on=1
  3. var ie = "v"=="v"
  4. var ie = !+"v1"
  5. var isIE = function(ver){
  6. var b = document.createElement("b")
  7. b.innerHTML = ""
  8. return b.getElementsByTagName("i").length === 1;
  9. }
位运算的神奇应用 toggle 两个值
比如 下面几种 反向判断赋值 如果 a == b 那就让 a = c 如果 a == c 那就让 a = b

</>复制代码

  1. var a = 10 , b = 20 , x = 10;
  2. if( a === b){
  3. a = c;
  4. }else if( a === c){
  5. a = b;
  6. }

我们尝试一行代码解决这个问题吧!!!

</>复制代码

  1. x = a ^ b ^ x; //按位异或
随机HEX16进制随机颜色

</>复制代码

  1. function randomColorU(){
  2. colorStr = "#"+("00000"+(Math.random()*0x1000000<<0).toString(16)).slice(-6);
  3. }
  4. function randomColor(){
  5.   var colorStr=Math.floor(Math.random()*0xFFFFFF).toString(16).toUpperCase();
  6.   return"#"+"000000".substring(0,6-colorStr)+colorStr;
  7. }
向下取整怎么写?

</>复制代码

  1. parseInt(15.5); //15
  2. Math.floor(15.5); //15
  3. 15.5 >>> 0; //15
  4. 15.5 >> 0; //15
  5. 15.5|0; //15
  6. ~~(15.5); //15

只要能把小数位干掉,目的就达到了

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/103176.html

相关文章

  • 10秒钟构建你自己”造轮子”工厂! 2019年github/npm工程化协作开发栈最佳实践

    摘要:年工程化协作开发栈最佳实践我们将花半小时实战撸一个包含,的标准的用于工程协作的包开发栈。使用脚手架,秒钟构建可自由配置的开发栈。分别表示询问弹窗自动执行任务执行任务后操作。 发起一个github/npm工程协作项目,门槛太高了!! 最基础的问题,你都要花很久去研究: 如何在项目中全线使用es2017代码? 答案是babel 如何统一所有协作者的代码风格? 答案是eslint + pr...

    dongfangyiyu 评论0 收藏0
  • 可以自定义配置React脚手架

    摘要:和是该模版默认的代码风格,你也可以在中使用自己喜爱的代码风格。你也可以选择,这个是建立在页面里面的一个组件,你可以在代码里自定义你需要的。 react-webpack-boilerplate A SPA boilerplate with React, built with love. showImg(https://segmentfault.com/img/bVKb0v?w=916&h...

    xialong 评论0 收藏0
  • Node.js 中 Java类定义,set、get方法,类实例化,继承实现,方法重写:学习心得

    摘要:一实体类的定义定义类有参构造方法二定义方法以设置实体类的属性值方法三定义方法以获取实体类的属性值方法四构造实例对象使用全参构造方法获取实例对象桐人男控制台打印实例 一、Node.js 实体类 的定义 //定义类Person 有参构造方法 function Person(name, sex, age, addr, salary) { this.name = name; t...

    fjcgreat 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<