类型转化:
任意类型转字符串
- String(x) (全局函数)
- x.toString() (局限性大,2个不能用)(ts:数字转字符串,用这个)
- x + '' (这个更常用)
任意类型转布尔
- Boolean(x) (全局函数)(ts:用这个)
- !!x (老手用这个)
但,不要总想把一些东西变成布尔,或许可以直接判断在不在:if (x!==undefined)
任意类型转数字
- Number(x)
- parseInt(x, 10) (别人考,问的多) (ts:字符串转数字,用这个)
- parseFloat(x) (ts:小数就用这个)
- x - 0 (一般用这种,最常用,因为好理解)(ts禁用)
- +x (取正的意思,容易理解错)
对象转字符串
JSON.stringify()
字符串转对象
JSON.parse()
变量声明
var (永远不要用,垃圾js带来的垃圾语法)
const 常量(1.声明赋值在一行。2.只能赋值一次)
let 变量(1.不能重复声明。2.声明之前不能使用)
解构:
对象解构
let obj = {
name: 'sparks',
age: 25,
nation: 'China',
};
//解构
let { name, age, nation } = obj;
数组解构
let arr = ['apple', 'orange', 'pear'];
let [fruit1, fruit2, fruit3] = arr;
函数参数解构
function sayHi({ name, age }: any) {
console.log(`Hi, ${name}, ${age}`);
}
sayHi({ name: 'frank', age: 18 });
展开:
数组展开
...(三个点表始拷贝)
let a1 = [1,2,3];
let a2 = [4,5,6];
lat a3 = [...a1,...a2];
console.log(a3) //[1,2,3,4,5,6]
对象展开
let o1 = { name:'sparks', age: 18};
let o2 = { nation:'China'};
let o3 = {...o1,...o2};
console.log(o3) // {name:'frank', age: 18, nation: "China"}
五个 falsy 值:
所有的值里面,只有5个值,变成布尔是 false,其他的值都是 true (最好背下来)
- number (0,NaN)
- 空字符串(
""
or''
or``
) - null (它本身)
- undefined (它本身)
所有的对象都是 true
parseInt('011') 是多少 //11
- 以前 0 开头的就是八进制,后来 ES 升级了,几进制是由第二个参数决定的,默认是10。
- 比如:parseInt('011',8) // 9
- parseInt('011',10) // 11