类型和语法
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()方法搭配简单粗暴的实现对字符串的反转。
- 将字符串转为字符数组
- 将字符数组进行反转
- 将数组中的字符拼接回字符串
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
未完·············