有bug我不说,测试提了再改!大家好,我是以一己之力养活全公司测试的狗前端---曹八哥
运算符 + 、* 和 !
【+】 、【*】 和 【!】 这些运算符不仅仅是用来做算术运算和逻辑运算的,在js中还常用来做数据的隐式转换
在项目开发时我们经常碰到以下场景:
- 使用 new Date() 拿到当前时间,但需要转换成时间戳
- 需要字符串和Number数字之间相互转换
- 将获取的数据转换成Boolean类型
一般遇到这样的情况我们可以通过这些运算符来处理,具体看下方实例
1.将当前时间转换为时间戳
let a = new Date() // a: Fri Mar 25 2022 16:36:11 GMT+0800 (中国标准时间)
let b = +new Date() // b: 1648197371716
let c = new Date()*1 // c:1648197371716
在浏览器中测试如下:
2. Number类型转化
我们常用的有:
- 如将 "520" 转化成 520 , 或将 520 转化成 "520"
- 如将 ""、null、undefined、NaN等转化成0 或 ""
- 这些我们可以通过运算符 【+】 和 【*】 来转换,这两个运算符处理数据效果是一样的 在浏览器中测试如下:
3. Boolean类型转化
另外在声明函数时,可以使用【!】来声明自运行函数:
2. 运算符 &&
&& 的短路作用,用得好能省去不少代码
//使用 && 代替 if(true){}
let a = ''
if(!a){
a=0
}
console.log("a:",a)
//改为:
let a = ''
!a && (a=0) console.log("a:",a)
3. 运算符 ||
主流浏览器中:事件对象可以在事件的回调函数中通过参数传入,常规写法是简写为 e 低版本IE浏览器中:事件对象通过window对象中获取,要取得事件对象,即 window.event 为了兼容不同浏览器:
domObj.onkeydown = function(e){
if(e){
//e.……
} else {
// event.……
}
}
使用【||】的写法:
domObj.onkeydown = function(e){
let event = e || window.event;
//event.……
}