今天在reivew部门牙套姐MM的代码的时候,有点小心得,给大家分享.我们常常说到,“学以致用”,但我发现自己却很少能真正做到.<javascript高级程序设计>即大家常说的“红宝书”,我也经常看,可是一些技巧还是要在实战中总结出来的.就比如今天将的这个~不起眼的一元运算符,学名“按位非”,在书的第三章中也有详细的介绍: ~:按位非操作符由一个波浪线(~)表示,执行按位非的结果就是返回数值的反码. var num1 = 3; // 我的幸运数字是3 var num2 = ~(num1); c…
大多数语言都提供了按位运算符,恰当的使用按位运算符有时候会取得的很好的效果. 在我看来按位运算符应该有7个: 1.& 按位与 &是二元运算符,它以特定的方式的方式组合操作数中对应的位,如果对应的位都为1,那么结果就是1, 如果任意一个位是0 则结果就是0. 1 & 3的结果为1 那我们来看看他是怎么运行的 1的二进制表示为 0 0 0 0 0 0 1 3的二进制表示为 0 0 0 0 0 1 1 根据 & 的规则 得到的结果为 0 0 0 0 0 0 0 1,十进制表示就是…
按位非运算符,简单的理解就是改变运算数的符号并减去1,当然,这是只是简单的理解能转换成number类型的数据. 那么,对于typeof var!==”number”的类型来说,进行运算时,会尝试转化成32位整形数据,如果无法转换成整形数据,就转换为NaN: JS在位运算上用了更简便的一种方法来实现这中运算,那么它的实现原理大致上可以这样理解:  var testData=-2.9; var testResult=(typeof testData==="number"&&…
其实是一种利用符号进行的类型转换,转换成数字类型 ~~true == 1 ~~false == 0 ~~"" == 0 ~~[] == 0 ~~undefined ==0 ~~!undefined == 1 ~~null == 0 ~~!null == 1 按位非运算符,简单的理解就是改变运算数的符号并减去1,当然,这是只是简单的理解能转换成number类型的数据 那么,对于typeof var!=="number"的类型来说,进行运算时,会尝试转化成32位整形数据…
2016-08-09 200多个js技巧代码(Down) word下载 200多个js技巧代码 目录 1.文本框焦点问题... 6 2.网页按钮的特殊颜色... 6 3.鼠标移入移出时颜色变化... 6 4.平面按钮... 6 5.按钮颜色变化... 6 6.平面输入框... 7 7.使窗口变成指定的大小... 7 8.使文字上下滚动... 7 9.状态栏显示该页状态... 7 10.可以点击文字实现radio选项的选定... 7 11.可以在文字域的font写onclick事件... 7 12…
js中的等值运算符 js中的相等分为抽象相等和严格相等,他们有什么区别呢. 在说具体算法前,先提下JS数据类型,JS数据类型分为6类:Undefined Null String Number Boolean Object.在这里我们用Type(x)表示x的数据类型 1,抽象相等== x==y的算法过程如下: 1,Type(x)与Type(y)相同: 如果Type(x)为Undefined或Null,则返回true,即:undefined==undefined; null==null返回true…
js经典试题之运算符 1.假设val已经声明,可定义为任何值.则下面js代码有可能输出的结果为: console.log('Value is ' + (val != '0') ? 'define' : 'undefine'); 答案: 第一题: 答案:define 解析:加号优先级高于 三目运算.低于括号. 所以括号中无论真假 加上前边的字符串都为 TRUE 三目运算为TRUE是 输出 define…
鱼头总结一些能够提高开发效率的JS技巧,这些技巧很实用,觉得挺好,想推荐给大家,所以有了这篇文章. 生成随机UID const genUid = () => {  var length = 20  var soupLength = genUid.soup_.length  var id = []  for (var i = 0; i < length; i++) {    id[i] = genUid.soup_.charAt(Math.random() * soupLength)  }  r…
2020-04-15 JS中的各类运算符 // 假设有如下代码,那么a(10)的返回结果是?( ) function a(a) { a^=(1<<4)-1; return a; } // 1<<4 中<<的意思是将1转换为二进制 01 然后左移4位 => 010000 再变成10进制 => 16 // 所以 (1<<4) - 1 = 16 - 1 = 15; // a ^= 15 => a = a ^ 15; // 计算符 ^ 表示异或 也…
目录 1. 类型检查小工具 2. 检查是否为空 3. 获取列表最后一项 4. 带有范围的随机数生成器 5. 随机 ID 生成器 6. 创建一个范围内的数字 7. 格式化 JSON 字符串,stringify 任何内容 8. 顺序执行 promise 9. 轮询数据 10. 等待所有 promise 完成 11. 交换数组值的位置 12. 条件对象键 13. 使用变量作为对象键 14. 检查对象里的键 15. 删除数组重复项 16. 在 ArrayforEach 中执行"break"和&…
 &&与  ||或   !非      如果对一个值进行两次取反,它不会变化      如果对一个非布尔值进行取反,则会将其转换为布尔值,再取反      所以我们可以利用该特点.来将一个其他的数据类型转换为布尔类型      可以为任意一个数据类型进行两次取反,来将其转换为布尔值      原理和Boolean()函数一样      {}是一个不完全空的对象,因为他的原型链上还有Object呢,而null就是完全空的对象,啥也没有,原型链也没有,所以null instanceof Obj…
如题: 假设对成长速度显示规定如下: 成长速度为5显示1个箭头:  成长速度为10显示2个箭头:  成长速度为12显示3个箭头:  成长速度为15显示4个箭头:  其他都显示都显示0各箭头.  用代码怎么实现? 差一点的用if else: var add_level = 0; if(add_step == 5){ add_level = 1; } else if(add_step == 10){ add_level = 2; } else if(add_step == 12){ add_leve…
看bootstrap时看到如下一行JavaScript代码产生了疑惑. return window.pageYOffset || e.scrollTop ||在这里的作用是什么呢? 首先明确概念,在js逻辑运算中,0."".null.false.undefined.NaN都会判为false,其他都为true. a&& b :如果执行a后返回true,则执行b并返回b的值:如果执行a后返回false,则整个表达式返回a的值,b不执行: a || b :如果执行a后返回tr…
典型的运用场景就是indexOf…
各种业务开发都离不开对数据的处理,然而遇到的很多数据都是不好处理的.这个时候就需要寻求搜索引擎的帮助.这种方法效率是非常低下的,而且根据作者的个性不能保证其对自己的口味.因此这篇文字包含了一份 JS 常用业务函数手册,例如时间格式的处理.用的是哪个手机浏览器,手机号.邮箱的验证,以此来提高你的开发效率 常用 JS 函数 1.时间格式化 界面展示的时间千变万化, 所以一个处理时间的函数,它的重要性就不言而喻了. export function formatDate (oldDate, fmt) {…
就如其他的编程语言一样,JavaScript也具有许多技巧来完成简单和困难的任务. 一些技巧已广为人知,而有一些技巧也会让你耳目一新. 让我们来看看今天可以开始使用的七个JavaScript技巧吧! 数组去重 使用ES6全新的数据结构即可简单实现. var j = [...new Set([1, 2, 3, 3])] 输出: [1, 2, 3] Set的详细用法可以查看ES6入门 数组和布尔值 当数组需要快速过滤掉一些为false的值(0,undefined,false等)使,一般是这样写: m…
前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前端技能,一些属于技巧,一些则是闻所未闻的冷知识,一时间还消化不过来.现分类整理出来分享给大家,也补充了一些平时的积累和扩展了一些内容. HTML篇 浏览器地址栏运行JavaScript代码 这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代码,做法是以javascript:开…
前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前端技能,一些属于技巧,一些则是闻所未闻的冷知识,一时间还消化不过来.现分类整理出来分享给大家,也补充了一些平时的积累和扩展了一些内容. HTML篇 浏览器地址栏运行JavaScript代码 这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代码,做法是以javascript:开…
1.文本框焦点问题 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect:当文字加亮后,产生该文件 <input type="text" value="mm" onfocus="if(value=='mm) {value=''}" onblur="if (value=='') {value='mm'}">点击时文字消失…
前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前端技能,一些属于技巧,一些则是闻所未闻的冷知识,一时间还消化不过来.现分类整理出来分享给大家,也补充了一些平时的积累和扩展了一些内容. HTML篇 浏览器地址栏运行JavaScript代码 这个很多人应该还是知道的,在浏览器地址栏可以直接运行JavaScript代码,做法是以javascript:开…
逻辑or运算大家都很熟悉,都会用.但是在javascript中用的更多,用的更妙.有时候用它来解决兼容问题特别方面.简洁. 比如获取鼠标对象.在 Internet Explorer 里,  event 是全局变量,会被存储在 window.event 里. 在 firefox 或者其他浏览器,event 会被相应的函数获取.当我们将mouseMove函数赋值于document.onmousemove,mouseMove 会获取鼠标移动事件.在ie中获取鼠标对象是  var ev=window.e…
[使用js的三种方式] 1.在HTML标签中,直接内嵌js(并不提倡使用) <button onclick=" alert('点就点')"> 点我啊</button> >>>不符合w3c关于内容与行为分离的要求 2.在HTML页面中使用<script></script>包裹js代码 <script type="text/javascript"> js代码 </script> &…
from:https://www.infoq.cn/article/eSYzcMZK4PkOzZC_68fv 在这篇文章中,作者将分享 12 个非常有用的 JavaScript 技巧,可以帮助你写出简洁且高性能的代码. 1. 过滤唯一值 ES6 引入了 Set 对象和延展(spread)语法-,我们可以用它们来创建一个只包含唯一值的数组. 复制代码 const array = [1, 1, 2, 3, 5, 5, 1] const uniqueArray = [...new Set(array…
JavaSctipt javascript:1.特效2.表单验证 原理:何时?1.找到标签 何时?2.操作标签 写在那里? 内联(行内)(不推荐直接写js代码,经常写方法调用) 写在标签里面,以属性的形式表现:属性名是事件属性(行为). on开头的一系列属性. <div ></div> <!-- <input type="text" onFocus="alert('点我干嘛')"> --> on开头的一系列属性. 内嵌…
1. 过滤唯一值 ES6 引入了 Set 对象和延展(spread)语法…,我们可以用它们来创建一个只包含唯一值的数组. 复制代码     const array = [1, 1, 2, 3, 5, 5, 1]   const uniqueArray = [...new Set(array)];   console.log(uniqueArray); // Result: [1, 2, 3, 5] 在 ES6 之前,获得同样的数组需要更多的代码! 这个技巧可以支持包含原始类型的数组:undef…
JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成.后改名叫Javascript 微软随后模仿在其IE3.0的产品中搭载了一个…
加号+运算符 在 JavaScript 中,加法的规则其实很简单,只有两种情况: 把数字和数字相加 把字符串和字符串相加 所有其他类型的值都会被自动转换成这两种类型的值. 为了能够弄明白这种隐式转换是如何进行的,我们首先需要搞懂一些基础知识. 让我们快速的复习一下. 在 JavaScript 中,一共有两种类型的值: 原始值(primitives) undefined null boolean number string 对象值(objects):除了原始值外,其他的所有值都是对象类型的值,包括…
按位操作符(Bitwise operators) 将其操作数(operands)当作32位的比特序列(由0和1组成),而不是十进制.十六进制或八进制数值.例如,十进制数9,用二进制表示则为1001.按位操作符操作数字的二进制形式,但是返回值依然是标准的JavaScript数值. 位运算符 名称 js内使用方式  操作作用 应用举例  & 按位与  a & b 对每对比特位执行与(AND)操作.只有两者互相对应的比特位都是 1 时,a & b的对应比特位才是 1   a&1…
 三元运算符 语法: 条件?成立做的事情:不成立做的事情:<=>相当于简单的if/else判断(简化写法) var num = 12; if(num>10){ num ++; }else { num--; } => 相当于三元运算符: num > 10? num++ : num--; 特殊情况: //=>如果三元运算符中某一部分成立不需要任何的处理我们用null/underfined/void 0...占位即可 var num=12; num>10?num++ :…
JavaScript介绍 JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互. JavaScript是浏览器解释执行的,前端脚本语言还有JScript(微软,IE独有),ActionScript( Adobe公司,需要插件)等. 前端三大块 1.HTML:页面结构2.CSS:页面表现:元素大小.颜色.位置.隐藏或显示.部分动画效果3.JavaScript:页面行为:部分动画效果.页面与用户的交互.页面功能 ECMAScri…