IE判断检测

jQuery 在 1.9 版本之前,提供了一个浏览器对象检测的属性 .browser 的替代方案。于是各种利用 IE bug 的检测方法被搜了出来:

// IE 678 最短方法

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然后进行 --取反


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

var ie = /*@cc_on!@*/false

var ie//@cc_on=1 
var ie = '\v'=='v' 
var ie = !+"\v1"

var isIE=function(ver){

  var b=document.createElement("b");

  b.innerHTML="<!--[if IE"+ver+"]><i></i><![endif]-->";

  return b.getElementsByTagName("i").length===1;

}


位运算的神奇应用

toggle 两个值

比如 下面几种 反向判断赋值 如果 a == b 那就让 a = c 如果 a == c 那就让 a = b

var a=10,b=20,c=10;

if(a===b){

  a=c;

}else if(a===c){

  a=b;

}

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

a=a^b^c; //按位异或

按位异或计算 
真^假=真 
假^真=真 
假^假=假 
真^真=假’


随机HEX16进制随机颜色

//方法1

function randomColor(){

  colorStr="#"+("00000"+(Math.random()*0x1000000<<0).toString(16)).slice(-6);

}

//方法2

function randomColor(){

  colorStr=Math.floor(Math.random()*0xffffff).toString(16).toUpperCase();

  return "#"+"000000".substring(0,6-colorStr)+colorStr;

}


向下取整怎么写?

parseInt(15.5); //15

Math.floor(15.5); //15

15.5>>>0; //15

15.5>>0; //15

15.5|0; //15

~~(15.5); //15

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

本文作者:潭州学院海牙老师

JavaScript 的一些SAO操作的更多相关文章

  1. JavaScript的一些SAO操作

    IE判断检测 jQuery 在 1.9 版本之前,提供了一个浏览器对象检测的属性 使用率极高.但是在版本发布之后,大家钟爱的这个属性被无情的抛弃了.大家开始着手寻找.browser 的替代方案.于是各 ...

  2. 关于JavaScript中的delete操作

    关于JavaScript中的delete操作 看到一道题,是这样的: (function(x){ delete x; return x; })(1); 1 null undefined Error 我 ...

  3. JavaScript对SVG进行操作的相关技术

    原文地址:http://www.ibm.com/developerworks/cn/xml/x-svgscript/   本文主要介绍在 SVG 中通过编程实现动态操作 SVG 图像的知识. SVG ...

  4. javascript中字符串常用操作整理

    javascript中字符串常用操作整理 字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用 ...

  5. 学习笔记: JavaScript/JQuery 的cookie操作

    转自:http://blog.csdn.net/barryhappy/archive/2011/04/27/6367994.aspx cookie是网页存储到用户硬盘上的一小段信息.最常见的作用是判断 ...

  6. PHP与JavaScript下的Cookie操作

    下面的例子列出几种情形交互场景,列出JS和php交互的方法.总结下,以免日后再为cookie问题困扰. setcookie.php getcookie.php 总结: php用自身函数读取php 的c ...

  7. Day3JavaScript(一)JavaScript初识以及bom操作

    JavaScript简介 什么是JavaScript 弱类型,动态类型,基于原型的直译性的编程语言.1995年netscape(网景)在导航者浏览器中设计完成. JavaScript的特点 1.与HT ...

  8. JavaScript中使用ActiveXObject操作本地文件夹的方法

    转载地址    http://www.jb51.net/article/48538.htm 在Windows平台上, js可以调用很多Windows提供的ActivexObject,本文就使用js来实 ...

  9. Javascript学习笔记二——操作DOM

    Javascript学习笔记 DOM操作: 一.GetElementById() ID在HTML是唯一的,getElementById()可以定位唯一的一个DOM节点 二.querySelector( ...

随机推荐

  1. nginx 网络层的优化

    TCP三次握手四次挥手 系统层的优化,主动建立连接时的重试次数 net.ipv4.tcp_syn_retries = 6 建立连接时本地端口可用范围:手动可以tiaoz net.ipv4.ip_loc ...

  2. 学习笔记(16)- InsuranceQA_zh

    仓库地址:https://github.com/l11x0m7/InsuranceQA_zh Convolutional Neural Network for Chinese InsuranceQA ...

  3. 用C/C++创建windows服务程序

    转载:https://blog.csdn.net/chenyujing1234/article/details/8023816 一.演示过程下方代码演示了如何使用vs(C/C++)创建windows服 ...

  4. 碰到的问题——建设基于TensorFlow的深度学习环境

    1.解决jupyter notebook问题:socket.error: [Errno 99] Cannot assign requested address 首先要生成一个jupyter的配置文件: ...

  5. GsonUtils.getGson().fromJson() 转泛型集合用法

    //计算其他收费 List<QiTaFree> qiTaFreeList = GsonUtils.getGson().fromJson(exhiMain.getQiTaFressJson( ...

  6. openstack的一台Nova主机上的虚拟机网络的配置

    1.一台虚拟机器的网络配置,通过openstack/nova计算节点服务生成的虚拟机配置文件 <interface type='bridge'> <mac address='fa:1 ...

  7. mybatis 入门参考

    参考:https://www.cnblogs.com/xdp-gacl/p/4261895.html

  8. 【mysql】mysq8.0新特性

    一.MySQL8.0简介   mysql8.0现在已经发布,2016-09-12第一个DM(development milestone)版本8.0.0发布.新的版本带来很多新功能和新特性,对性能也得到 ...

  9. Kubernetes 二进制部署(一)单节点部署(Master 与 Node 同一机器)

    0. 前言 最近受“新冠肺炎”疫情影响,在家等着,入职暂时延后,在家里办公和学习 尝试通过源码编译二进制的方式在单一节点(Master 与 Node 部署在同一个机器上)上部署一个 k8s 环境,整理 ...

  10. Maven项目- get请求的乱码问题,使用tamcat7出现乱码的解决方法

    get请求的乱码问题: 解决方法: 手动处理编码