【复习 自用】JavaScript知识汇总(基础版)

这篇博客是作者的JavaScript复习记录,主要涵盖基础知识点,如对象属性访问、数据类型比较、数组操作、函数、作用域、Date和Math对象的使用等,并提及会混入TypeScript相关知识。内容包括实例和练习,适合有一定基础的学习者参考。
摘要由CSDN通过智能技术生成

注:之前学过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
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值