你不知道的JavaScript中卷笔记

187 阅读2分钟

类型和语法

JavaScript的内置数据类型:null、undefined、boolean、string、object、symbol(符号)

typeof运算符 typeof运算符可以查看值得类型,其中除null类型外其余六种均有同名字符串与之对应。对于null类型来说,它有点特殊,举例:

typeof null === "object"; // true

对于null数据类型的检测

var a = null
( !a && typeof a === "object" ); //true

undefined和is not defined的区别。举例:

let b
console.log(b) // undefined
console.log(c) //Error: c is not defined

js使用技巧

对于真假值得判断:js对于非空字符串值与布尔值得比较。非空字符串布尔值为true,那么可以通过(||、&&、三目运算符)进行表达式操作,减少if代码量

字符串、数组反转

MDN开发者文档中定义:reverse() 方法将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。

    var a = "foo";
    var b = [ "f", "o", "o" ]
    
    a.reverse; // "foo"
    b.reverse(); // [ "o", "o", "f" ]

对于字符串反转则可利用split()、reverse()、join()方法搭配简单粗暴的实现对字符串的反转。

  1. 将字符串转为字符数组
  2. 将字符数组进行反转
  3. 将数组中的字符拼接回字符串
var a = "foo"
let c = a.split("").reverse().join("")
console.log( c ); // "oof"

0.! + 0.2 !== 0.3

从数学角度来说,0.1 + 0.2 = 0.3,所有遵循IEEE 754规范的语言中,二进制浮点数不是十分精确导致它们相加的结果刚好等于0.3,而是一个比较接近的数字0.3000000000000004。 对于解决 0.1 + 0.2 === 0.3 最常见的方案是设置一个误差范围值,通常称为"机器精度",这个值通常是2^-52 (2.220446049250313e-16) 从ES6开始,该值定义在Number.EPSILON中

function numbersCloseEnoughtToEqual(n1,n2){
    return Math.abs(n1 - n2) < Number.EPSILON
}

var a = 0.1 + 0.2
var b = 0.3

numbersCloseEnoughtToEqual(a, b) //true

未完·············