JS短路原理的应用示例 精简代码的途径


Posted in Javascript onDecember 13, 2013

在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false,其他都为true.

||先计算第一个运算数,如果可以被转换成true,则返回左边这个表达式的值,否则计算第二个运算数。即使||运算符的运算数不是布尔值,任然可以将它看作布尔OR运算,因为无论它返回的值是什么类型,都可以被转换为布尔值。
利用它对非布尔型的值会将其返回的特性:对非布尔型的运算数使用||,用于选取一组备选值中的第一个定义了的并且非空的值(第一个为非false的值)

例:
var max = max_width || obj.max_width || 500 ;
var attr = attr || "";这个运算经常用来判断一个变量是否已定义,如果没有定义就给他一个初始值,在给函数的参数定义一个默认值的时比较有用。

&&,它先计算第一个表达式,若为假,就不会去处理第二个表达;否则继续处理后继表达式。从左到右选取表达式的第一个为非true的表达式的值,如果一直未找到则返回最后一个表达式的值。

例:(其中的味道还需要细心琢磨)

2 && 's1' && '123' && 'sss' 表达式的值等于 'sss'
2 && 's1' && '' && 'sss' 表达式的值等于 ''
2 && 's1' && NaN && 'sss'表达式的值等于 NaN

if(a >=5){
alert("你好");
}
可以简成:
a >= 5 && alert("你好");

typeof 5和typeof !!5的区别,这是一种更严谨的写法,!!的作用是把一个其他类型的变量转成的bool类型。例如, if(!!attr) => if(attr)

js中||和&&的特性帮我们精简了代码的同时,也带来了代码可读性的降低。这就需要我们自己来权衡了。

JS中的startWith功能的巧妙实现,alert(!'asdf'.indexOf('s')) =》 !0 = true

Javascript 相关文章推荐
js中的this关键字详解
Sep 25 Javascript
jquery实现的鼠标下拉滚动置顶效果
Jul 24 Javascript
js实现的牛顿摆效果
Mar 31 Javascript
jquery 遍历数组 each 方法详解
May 25 Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 Javascript
jQuery Select下拉框操作小结(推荐)
Jul 22 Javascript
js编写选项卡效果
May 23 Javascript
详解Angular CLI + Electron 开发环境搭建
Jul 20 Javascript
js实现关闭网页出现是否离开提示
Dec 07 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
Apr 28 Javascript
详解微信小程序-canvas绘制文字实现自动换行
Apr 26 Javascript
Vue项目中如何封装axios(统一管理http请求)
May 02 Vue.js
代码触发js事件(click、change)示例应用
Dec 13 #Javascript
jquery获得option的值和对option进行操作
Dec 13 #Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
Dec 13 #Javascript
jquery改变disabled的boolean状态的三种方法
Dec 13 #Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
Dec 13 #Javascript
Extjs4中的分页应用结合前后台
Dec 13 #Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
Dec 13 #Javascript
You might like
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
PHP学习资料汇总与网址
2007/03/16 PHP
PHP常用函数小技巧
2008/09/11 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
php上传excel表格并获取数据
2017/04/27 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
可实现多表单提交的javascript函数
2007/08/01 Javascript
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
jquery checkbox,radio是否选中的判断代码
2010/03/20 Javascript
JS关键字变色实现思路及代码
2013/02/21 Javascript
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
原生JavaScript编写canvas版的连连看游戏
2016/05/29 Javascript
Angular中$state.go页面跳转并传递参数的方法
2017/05/09 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
JS document form表单元素操作完整示例
2020/01/13 Javascript
python利用有道翻译实现"语言翻译器"的功能实例
2017/11/14 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
python和opencv实现抠图
2018/07/18 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
Python创建数字列表的示例
2019/11/28 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
校园之声广播稿
2014/01/31 职场文书
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
车辆工程专业求职信
2014/06/14 职场文书
网络营销实训总结
2015/08/03 职场文书
个人道歉信大全
2019/04/11 职场文书