注:之前学过JavaScript,本贴仅用于复习(自用),建议没基础的朋友先学基础。会混入typescript!
更新中~~~~~~~~~~
- 对象.属性和对象[‘属性’]的区别:总的来说没啥区别,但是,
!!!如果需要用变量来定义对象的属性=》用对象[‘属性’],而不是对象.变量
// 判断一个字符串 'abcoefoxyozzopp' 中出现次数最多的字符,并统计其次数。
// o.a = 1
// o.b = 1
// o.c = 1
// o.o = 4
// 核心算法:利用 charAt() 遍历这个字符串
// 把每个字符都存储给对象, 如果对象没有该属性,就为1,如果存在了就 +1
// 遍历对象,得到最大值和该字符
var str = "abcoefoxyozzopp";
var o = {
};
for (var i = 0; i < str.length; i++) {
var chars = str.charAt(i); // chars 是 字符串的每一个字符
if (o[chars]) {
// o[chars] 得到的是属性值
o[chars]++;
} else {
o[chars] = 1;
}
}
console.log(o);
// 2. 遍历对象
var max = 0;
var ch = "";
for (var k in o) {
// k 得到是 属性名
// o[k] 得到的是属性值
if (o[k] > max) {
max = o[k];
ch = k;
}
}
console.log(max);
console.log("最多的字符是" + ch);
- prompt(info); 浏览看弹出输入框,用户可以输入
- === 全等 要求值和数据类型都一致
eg: 37=== ‘37’ =>false 37==‘37’ =>true - 数组转换为字符串
var arr = ['red', 'green', 'blue', 'pink'];
var str = '';
var separator = '|';
for (var i = 0; i < arr.length; i++) {
str += arr[i] + separator;
}
console.log(str);
// red|green|blue|pink
- 通过修改 length 长度新增数组元素(声明变量未给值,默认值就是 undefined)
- 通过修改数组索引新增数组元素
var arr = ['red', 'green', 'blue', 'pink'];
arr[4] = 'hotpink';
console.log(arr);
- 删除指定元素
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = []; // 空数组的默认的长度为 0
// 定义一个变量 i 用来计算新数组的索引号
for (var i = 0; i < arr.length; i++) {
// 找出大于 10 的数
if (arr[i] != 0) {
// 给新数组
// 每次存入一个值,newArr长度都会 +1
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
- 将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素选出来,放入新数组
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] >= 10) {
// 给新数组
newArr[newArr.length] = arr[i];
}
}
console.log(newArr);
- 形参实参个数不匹配:形参大于实参=》未匹配到数值的形参定义为undefined 实参大于形参=》只取形参个数
- 泛型约束
function prop<T, K extends keyof T>(obj: T, key: K) {
//定义了类型T
//并使用extends关键字继承了object类型的子类型
//然后使用keyof操作符获取T类型的所有键(返回值为联合类型)
//利用extends的约束 k类型必须为keyof T联合类型的子类型
return obj[key]
}
- arguments展示形式是一个伪数组,因此可以进行遍历。
①:具有 length 属性
②:按索引方式储存数据
③:不具有数组的 push , pop 等方法 - arguments:arguments 对象中存储了传递的所有实参,展示形式是一个伪数组,因此可以进行遍历。
//javascript中
// 函数声明
function fn() {
console.log(arguments); //里面存储了所有传递过来的实参
console.log(arrguments.length); // 3
console.log(arrguments[2]); // 3
}