1.js内部,所有数字都是以64位浮点数形式存储的,即使整数也是如此,所以1===1.0为true,由于浮点数不是精确的值,所有如何解决js中的精度问题,后续会有专门的博客来说明
2.非数字NaN 和 无穷Infinity 详解(请阅读阮一峰老师的文章 http://javascript.ruanyifeng.com/grammar/number.html)
3.Base64转码:btoa() ---> 任意ASCII码值转为Base64编码;
atob() ---> Base64编码转为原来的值;
非ASCII码(比如中文)转为Base64编码,中间得插入一个转码环节 encodeURIComponent(),对应的解码用 decodeURIComponent()
4.js规定,如果行首是大括号,一律解释为语句(即区块)。如果要解释为表达式(即对象),必须在大括号前加上圆括号。典型的例子就是 eval():对字符串求值
5.如果不同的变量名指向同一个对象,那么它们都是这个对象的引用,也就是说指向同一个内存地址。修改其中一个变量,会影响到其他所有变量
6.Object.keys() 查看对象和数组的所有属性
7.for...in循环用来遍历对象或数组的全部属性(包括数组的非数字键),会跳过不可遍历的属性,还会遍历继承的属性,要遍历自身的属性,可以结合hasOwnProperty()方法使用
8.数组的循环最好不要用for...in,推荐用forEach,for或while也可以,注意循环时数组会跳过空位,但不会跳过undefined
9.类似数组的对象,即键名为数字且含有length属性的对象,如arguments、大多数DOM元素集、字符串。Array.prototype.slice.call() 可以将类似数组的对象变成真正的数组,解释请查阅相关文献(https://www.cnblogs.com/dingxiaoyue/p/4948166.html)