js-巧用运算符

174 阅读2分钟

有bug我不说,测试提了再改!大家好,我是以一己之力养活全公司测试的狗前端---曹八哥

016382BE.png

运算符 + 、* 和 !

【+】【*】【!】 这些运算符不仅仅是用来做算术运算和逻辑运算的,在js中还常用来做数据的隐式转换

在项目开发时我们经常碰到以下场景:

  1. 使用 new Date() 拿到当前时间,但需要转换成时间戳
  2. 需要字符串和Number数字之间相互转换
  3. 将获取的数据转换成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

在浏览器中测试如下:

10.png

2. Number类型转化

我们常用的有:

  1. 如将 "520" 转化成 520 , 或将 520 转化成 "520"
  2. 如将 ""nullundefinedNaN等转化成0""
  3. 这些我们可以通过运算符 【+】【*】 来转换,这两个运算符处理数据效果是一样的 在浏览器中测试如下:

11.png

3. Boolean类型转化

12.png

另外在声明函数时,可以使用【!】来声明自运行函数:

13.png

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.…… 
}