!!(2个叹号)在js代码中出现怎么理解
2016-02-03 10:56
691 查看
首先看代码,如下:-------------------A-----------------
首先,此段代码乍一看,可以这么优化,就是直接return,如下:---------------------B------------------
但是这还不是编辑器提示的结果,编辑器提示这么改:-----------------------D-----------------
前面有2个叹号,怎么理解。
!!一般用来将后面的表达式转换为布尔型的数据(boolean)
因为javascript是弱类型的语言(变量没有固定的数据类型)所以有时需要强制转换为相应的类型,
类似的如:
a=parseInt("1234")
a="1234"+0 //转换为数字
b=1234+"" //转换为字符串
c=someObject.toString() //将对象转换为字符串
其中第1种、第4种为显式转换,2、3为隐式转换
布尔型的转换,javascript约定和c类似,
规则为
·false、undefinded、null、0、"" 为 false
·true、1、"somestring"、[Object] 为 true
经这么一解释,是不是就是说,酱紫就可以保证后面的肯定是boolean型啦
一般能都能到c的程度就可以啦。
function xxx() { var result; if ($("#xx").val() != "" || $("#xxx").val() != "") { result = true; } else { result = false; } return result; }
首先,此段代码乍一看,可以这么优化,就是直接return,如下:---------------------B------------------
function xxx() { var result; result = ($("#xx").val() != "" || $("#xxx").val() != ""); return result; }或者这样:----------------------C---------------------
function xxx() { return ($("#xx").val() != "" || $("#xxx").val() != ""); }
但是这还不是编辑器提示的结果,编辑器提示这么改:-----------------------D-----------------
function xxx() { return !!($("#xx").val() != "" || $("#xxx").val() != ""); }
前面有2个叹号,怎么理解。
!!一般用来将后面的表达式转换为布尔型的数据(boolean)
因为javascript是弱类型的语言(变量没有固定的数据类型)所以有时需要强制转换为相应的类型,
类似的如:
a=parseInt("1234")
a="1234"+0 //转换为数字
b=1234+"" //转换为字符串
c=someObject.toString() //将对象转换为字符串
其中第1种、第4种为显式转换,2、3为隐式转换
布尔型的转换,javascript约定和c类似,
规则为
·false、undefinded、null、0、"" 为 false
·true、1、"somestring"、[Object] 为 true
经这么一解释,是不是就是说,酱紫就可以保证后面的肯定是boolean型啦
一般能都能到c的程度就可以啦。
相关文章推荐
- afnetworking中,规范json格式的代码---这样打印出来errormessage就非常的方便了,呵呵呵呵
- javascript鼠标右键菜单自定义效果
- javascript中关于字符串替换 replace() 方法的使用(咋个办呢 zgbn)
- 每天学习十分钟22之JavaScript
- 2016-02-03 JS正则表达式
- js产生随机数
- Javascript的对象操作 - 数组元素操作 【javascript、数组、插入、删除、替换】 ( 咋个办呢 -zgbn)
- videojs 视频开发API
- javascript-倒计时-(咋个办呢-zgbn)
- JavaScript获取当前运行脚本文件所在目录的方法
- JavaScript获取对象在页面中位置坐标的方法
- JSP
- Javascript函数声明和函数表达式
- Video of Nanjing receives millions of hits
- js密码强度验证代码
- QScript 解析json
- JSONP跨域的原理解析及其实现介绍
- Javascript模式——函数提升 (笔记)
- ExtJS 上传下载控件
- jsp 通过流的方式读取图片