js基础
· 15 min read
js的数据
不区分整数和浮点数 3 / 2 === 1.5
支持进制和科学计数
console.log(0b111110111); // 503
console.log(0o767); // 503
console.log(0x1f7); // 503
console.log(5.03e2); // 503
igInt: 任意长度的整数, 使用后缀'n' 表示
console.log(3n/2n); // 1n
Math对象
Math.sin(3.5); // 3.5rad
const circumference = 2 * Math.PI * r;
字符串转换数字
console.log(parseInt("10"));
console.log(parseFloat("10.5"));
console.log(parseInt("0x10"));
parseInt("hello", 10); // NaN
数字转换成字符串
"" + 12345; // "12345"
比较 == 是类型自适应的, 1 == true, === 不是, 1 !== true
特殊数字
isNaN(NaN); //true
1 / 0; // Infinity
-1 / 0; // -Infinity
字符串有用的方法
console.log("hello".toUpperCase());
console.log("hello".replace("h", "H"));
JavaScript 中的字符串是 Unicode 字符序列。更准确地说,它们是 UTF-16 编码的。
console.log("你好,世界!");
模板字符串,使用反引号``
let age = 10;
console.log(`I am ${age} years old.`); // Template literal
js的数组
const t = [1, -1, 3];
console.log(t.length); // 3
console.log(t[1]);
t.forEach((value) => {
console.log(value);
});
js之中,const的数组意味着这个指针是const的,不意味着数组元素不可变化
因而改变数组的好的编程范式是使用 concat,它会创建一个新的数组
t.push(5); // 改变了原来的t
t.concat(5); // 新建了一个copy再push
console.log(t);
方法名称 | 描述 |
---|---|
a.toString() | 返回一个包含数组中所有元素的字符串,每个元素通过逗号分隔。 |
a.toLocaleString() | 根据宿主环境的区域设置,返回一个包含数组中所有元素的字符串,每个元素通过逗号分隔。 |
a.concat(item1[, item2[, ...[, itemN]]]) | 返回一个数组,这个数组包含原先 a 和 item1、item2、……、itemN 中的所有元素。 |
a.join(sep) | 返回一个包含数组中所有元素的字符串,每个元素通过指定的 sep 分隔。 |
a.pop() | 删除并返回数组中的最后一个元素。 |
a.push(item1, ..., itemN) | 将 item1、item2、……、itemN 追加至数组 a 。 |
a.reverse() | 数组逆序(会更改原数组 a )。 |
a.shift() | 删除并返回数组中第一个元素。 |
a.slice(start, end) | 返回子数组,以 a[start] 开头,以 a[end] 前一个元素结尾。 |
a.sort([cmpfn]) | 依据可选的比较函数 cmpfn 进行排序,如果未指定比较函数,则按字符顺序比较(即使被比较元素是数字)。 |
a.splice(start, delcount[, item1[, ...[, itemN]]]) | 从 start 开始,删除 delcount 个元素,然后插入所有的 item 。 |
a.unshift(item1[, item2[, ...[, itemN]]]) | 将 item 插入数组头部,返回数组新长度(考虑 undefined )。 |
map方法的用处示例
const t2 = t.map((value) => "<li>" + value + "</li>");
console.log(t2);
解构赋值
const [first, second, ...rest] = t;
console.log(first, second); // 1, -1
console.log(rest);