6 个 false
false;
undefined;
null;
0;
(""); // 空字符串 ' '中间有空格的是true
NaN; // 这个也是false
不要混淆原始的布尔值和 Boolean 对象的真假
留坑
相等比较时的隐式转换
var b = new Boolean(false)
if(b) // 真
if(b==false) //true
if(b==true) //假
for...in 和 for...of 区别
var ary = [3, 5, 7];
ary.foo = "bar";
// 此时的length还是3
for (var i in ary) {
console.log(i); //'0','1','2','foo'
}
for (var i of ary) {
console.log(i); // 3, 5, 7
}
// for...of 的输出没有bar
toFixed()
var a = 123,
b = a.toFixed(2);
// b 123.00
字符串
str.indexOf(searchValue [, fromIndex])
区分大小写,没找到返回-1
数组也有这个方法
str.startsWith(searchString[, position])
str.endsWith(searchString[, length])
// 这个要特别注意的是 第二个可选参数是length而不是索引
const str1 = 'Cats are the best!';
console.log(str1.endsWith('best', 17));
// expected output: true
str.includes(searchString[, position])
slice
str.slice(beginIndex[, endIndex])
slice()不传参,就是复制一个字符串
结束索引不写,就是到结束的位置
开始的索引和结束的索引都可以是负数
倒着数的第一个就是-1,第二个就是-2
var str = 'The morning is upon us.';
str.slice(-3); // 返回 'us.'
str.slice(-3, -1); // 返回 'us'
str.slice(0, -1); // 返回 'The morning is upon us'
substr() `未来将可能会被移除掉`使用 substring() 替代它.
str.substr(start[, length]) // 开始索引,想截取的字符数
str.substring(indexStart[, indexEnd])
// 和slice差不多。但是不可以取负数
str.padEnd(targetLength [, padString])
'abc'.padEnd(10); // "abc "
'abc'.padEnd(10, "foo"); // "abcfoofoof"
'abc'.padEnd(6, "123456"); // "abc123"
'abc'.padEnd(1); // "abc"
padStart()
'abc'.padStart(10); // " abc"
'abc'.padStart(10, "foo"); // "foofoofabc"
'abc'.padStart(6,"123465"); // "123abc"
'abc'.padStart(8, "0"); // "00000abc"
'abc'.padStart(1); // "abc"
str.repeat(count)
count为0时,返回一个空字符串
数组
数组也有 slice 方法,用法和字符串的一样,属于选取,不会改变原数组
但是数组还有一个 splice 方法,属于截取,会改变原数组
toString()
ary.toString()
返回一个包含数组中所有元素的字符串,每个元素通过逗号分隔。
对象的 key 可以是一个空字符串
枚举对象 key 的几个方法的区别
在 es5 之前,没有原生的方法枚举一个对象的所有属性。可以通过下面的函数完成
function listAllProperties(o) {
var objectToInspect;
var result = [];
for (
objectToInspect = o;
objectToInspect !== null;
objectToInspect = Object.getPrototypeOf(objectToInspect)
) {
result = result.concat(Object.getOwnPropertyNames(objectToInspect));
}
return result;
}
如果只想列出可访问的属性,那么只需要去除数组中的重复元素即可
对象中的 key 设置为数字
数字会转变成字符串