• JavaScript基础


    JavaScript基础

    第1天  数据类型

    简单数据类型 
    Number,String,Boolean,Undefined,Null
    复杂数据类型  Object

    第4天  数组

    第5天  对象

    什么是对象?

    在 JavaScript 中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。 对象是由属性和方法组成的。

    • 属性:事物的特征,在对象中用属性来表示(常用名词)
    • 方法:事物的行为,在对象中用方法来表示(常用动词)
    • 对象中的键和值
    • 键:相当于属性名
    • 值:相当于属性值,可以是任意类型的值(数字类型、字符串类型、布尔类型,函数类型等)
    • 遍历对象
    for (变量 in 对象名字) {
      // 在此执行代码
    }
    
    for (var k in obj) {
      console.log(k);    // 这里的 k 是属性名
      console.log(obj[k]); // 这里的 obj[k] 是属性值
    }
    

    第6天

    JavaScript内置对象:Math、Date、Array、String等

    数组对象

    字符串对象

    字符串通过基本包装类型可以调用部分方法来操作字符串
    以下是返回指定字符的位置的方法:
    indexOf(要查找的字符,开始的位置) 返回指定内容在元字符串中的位置,如果找不到就返回-1, 开始的位置是index索引号
    案例:查找字符串"abcoefoxyozzopp"中所有o出现的位置以及次数

    1. 先查找第一个o出现的位置
    2. 然后 只要indexOf 返回的结果不是 -1 就继续往后查找
    3. 因为indexOf 只能查找到第一个,所以后面的查找,利用第二个参数,当前索引加1,从而继续查
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script>
            // 查找字符串"abcoefoxyozzopp"中所有o出现的位置以及次数
            // 核心算法:先查找第一个o出现的位置
            // 然后 只要indexOf 返回的结果不是 -1 就继续往后查找
            // 因为indexOf 只能查找到第一个,所以后面的查找,一定是当前索引加1,从而继续查找
            var str = "oabcoefoxyozzopp";
            var index = str.indexOf('o');
            var num = 0;
            // console.log(index);
            while (index !== -1) {
                console.log(index);
                num++;
                index = str.indexOf('o', index + 1);
            }
            console.log('o出现的次数是: ' + num);
            // 课后作业 ['red', 'blue', 'red', 'green', 'pink','red'], 求 red 出现的位置和次数
        </script>
    </head>
    <body>
    </body>
    </html>
    

    以下是根据位置返回指定位置上的字符:
    charAt(index) 返回指定位置的字符(index字符串的索引号)

    str.charAt(0)
    

    案例:判断一个字符串 'abcoefoxyozzopp' 中出现次数最多的字符,并统计其次数

    1. 核心算法:利用 charAt() 遍历这个字符串
    2. 把每个字符都存储给对象, 如果对象没有该属性,就为1,如果存在了就 +1
    3. 遍历对象,得到最大值和该字符
      注意:在遍历的过程中,把字符串中的每个字符作为对象的属性存储在对象中,对应的属性值
      是该字符出现的次数
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script>
            // 有一个对象 来判断是否有该属性 对象['属性名']
            var o = {
                age: 18
            }
            if (o['sex']) {
                console.log('里面有该属性');
    
            } else {
                console.log('没有该属性');
    
            }
    
            //  判断一个字符串 '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);
        </script>
    </head>
    
    <body>
    
    </body>
    
    </html>
    

    基本包装类型
    为了方便操作基本数据类型,JavaScript 还提供了三个特殊的引用类型:String、Number和Boolean。
    基本包装类型就是把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法。

    简单数据类型和复杂数据类型
    简单类型(基本数据类型、值类型):在存储时变量中存储的是值本身,包括string ,number,boolean,undefined,null
    复杂数据类型(引用类型):在存储时变量中存储的仅仅是地址(引用),通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等;

  • 相关阅读:
    Codeforces Round #536 E. Lunar New Year and Red Envelopes /// 贪心 记忆化搜索 multiset取最大项
    牛客网暑期ACM多校训练营(第五场) F
    关于线段树or 树状树状 在二维平面搞事情!Orz
    ZOJ 3822 ( 2014牡丹江区域赛D题) (概率dp)
    HDU4336 Card Collector (概率dp+状压dp)
    POJ 2151 Check the difficulty of problems(概率DP)
    CF E2
    HDU4089 Activation(概率DP+处理环迭代式子)
    HDU4035 Maze (概率DP)
    牛客 Rabbit的数列 (线段树维护值为x的个数+区间覆盖)
  • 原文地址:https://www.cnblogs.com/songsongblue/p/12495841.html
Copyright © 2020-2023  润新知