JavaScript基础回顾查漏补缺

101 阅读1分钟

JavaScript基础回顾查漏补缺——第一期

valueOf 与 toString的对比

  1. valueOf偏向于运算,toString偏向于显示
  2. 强转字符串优先使用toString,强转数字优先使用valueOf
  3. 正常情况下,都是需求字符串,优先使用toString
  4. 运算操作符情况下优先使用valueOf,避免使用字符串运算导致错误
对象类型valueOf的返回值toString的返回值valueof返回值类型toString返回值类型
Array数组本身数组转字符串,类似Array.join()ArrayString
Boolean布尔值'true'、'false'BooleanString
Date毫秒数字符串日期,如"2022-09-13T16:45:21.693Z"NumberString
Function函数本身Function//
Number数字值数字字符串,如'123'NumberString
Object对象本身'[object Object]'ObjectString
String字符串字符串StringString

JavaScript的隐式转换规则

    1. 转成string类型: +(字符串连接符)
    1. 转成number类型:++/--(自增自减运算符) + - * / %(算术运算符) > < >= <= == != === !=== (关系运算符)
    1. 转成boolean类型:!(逻辑非运算符)
注意
  • undefined != undefined 等价 NaN != NaN , NaN 与其他数值进行比较的结果总是不相等的,包括它自身在内,所以是true
  • null >= null 等价 0 >= 0,0 等于 0,所以是true

闭包

闭包就是能够读取其他函数内部变量的函数。

//示例
function a () { 
    let num = 0   
    //下面是个闭包
    return function () {
        return num++
    }
}

const b = a() 
console.log(b()) // 0 
console.log(b()) // 1
特点:
  1. 访问函数定义时所在的作用域(阻止回收)
  2. 私有化变量
  3. 使用不当可能造成内存泄漏

从闭包又可以延展到JavaScript垃圾回收机制和作用域相关知识,发现自己不记得的朋友要补补。


今天老任直面会放出出了野炊2的消息,2023.5,期待!

野炊2.png