js基础学习--第二周

js学习第二周,由于疫情影响,并没有上完整周便开始停课,只能将这些总结送给大家

数组
    概念
        数组就是一系列有序数据的集合
        数组也是一个对象
        数组中每个值,称为一个数组元素
        和普通对象不同的是,数组使用数字来作为 索引操作元素
        数组元素可以是任意类型的数据
    创建数组
        使用new关键字
            var arr = new Array(5)
                创建一个长度为5的数字
        使用中括号[]字面量来创建数组
            var arr = [5 ]
                创建一个数组只有一个元素5
    索引
        从零开始的整数
        最大的索引为数组长度-1
        每个元素对应一个索引
        添加索引
            数组[索引] = 值
        读取元素
            数组[索引]
                如果读取不存在的 索引,不会报错,二十返回undefined
    赋值方式
        静态赋值:直接使用指定的值给指定位置的数组
        动态赋值:在程序运行过程中,创建具体的值给元素赋值
    长度
        对于连续的数组可以使用length属性来获取数组的长度(元素的个数)
            数组.length
        对于非连续的数组,使用length属性会获取到数组的长度为最大索引+1
            尽量不要创建非连续数组
        修改length
            数组.length = 值
                如果修改的length大于原长度,则多出部分会空出来
                如果修改的length长度小于原长度,则多出部分的元素会被删除
        向数组的最后一个位置添加元素
            数组[数组.length] = 值
    方法
        arr.sort()
            给数组排序,先数字后英文再中文,会让每个元素调用toString(),将其转化为字符串,比较编码
        arr.push()
            向数组的末尾添加一个或多个元素,并返回数组的新的长度
        arr.pop()
            可以删除数组的最后一个元素,并将被删除的元素作为返回值返回
        arr.unshift()
            向数组开头添加一个或多个元素,并返回新的数组长度
        arr.shift()
            删除数组的第一个元素,并将被删除的元素作为返回值返回
        arr.reserve()
            反转数组
        arr.splice(start,删除长度,元素1,元素2,.....)
            可以删除,主要是替换和添加元素
            删除长度可以是0,元素1,元素2就是添加的元素
            删除长度非0,元素1,元素2,就是替换的元素
        arr.slice(start,end)
            分割数组,返回arr中start到end之间的元素,有头无尾
        arr.join(str)
            将数组划分为字符串,数组元素以str分割,默认是逗号,
        arr.concat(arr1,arr2,........)
            合并数组,可以是多个,多个之间用逗号,隔开.如果一个都没有则返回原数组
    类型
        整数数组
            数组中的元素都是整数
        字符串数组
            数组的元素为字符串
        对象数组
            数组的元素为对象

多维数组
    数组元素可以是任意类型,如果其中一个元素,依旧是数组,称为多维数组
        var arr = [元素1,[元素1,元素2,元素3],元素3]
    操作多维数组
        获取元素:数组名[一维数组下标][二维数组下标],如:arr[1][1];
        增加元素:数组名[一维数组下标][新增的二维数组下标],如:arr[1][8]
        修改元素:数组名[一维数组下标][已存在的二维数组下标],如:arr[1][4]

冒泡排序
    概念
        依次对数组中相邻数字进行比较(两两比较),大的放后面
    算法
        比较相邻的元素。如果第一个比第二个大,就交换他们两个。
        对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。做完一次后,最后的元            素应该会是最大的数。
        针对所有的元素重复以上的步骤,除了最后一个。
        持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

选择排序
    概念
         从原始数据中找到最小元素,并放在数组的最前面。然后再从下面的元素中找到最小元素,           放在之前最小元素的后面,直到排序完成
    算法
        将第一位依次与后面的元素相比较,得到最小值,与第一位交换。
        再用第二位依次与后面元素相比较,得到最小值,与第二位交换。

for-in循环
    for(var 变量  in  对象)  {  };
    对象中有几个属性循环体就会执行几次
    每次执行时会将对象中的一个属性的名字赋值给变量

栈和堆
    每个内存单元中分为两个部分,栈(stack)和堆(heap)
    栈内存
        栈内存主要用于存储各种基本类型的变量,包括Boolean、Number、String、Undefined、Null,以及对象变量的指针
         优点:存取速度比堆快,仅次于直接位于CPU中的寄存器,数据可以共享
        缺点:存在栈中的数据大小与生存期必须是确定的,缺乏灵活性
    堆内存
        动态分配的内存,存放引用数据大小不定

对象的本质和意义
    通过Object构造函数创建
        var obj =  new Object();
    调用语法
        对象名.属性名
    当属性是变量的时候,就要用[]才能解析

JSON表示对象的方法
    json也是由属性和值组成
    结构上和对象一样
    属性需要加""

严格模式
    作用
        消除了JS语法的一些不合理、不严谨之处,减少一些怪异行为
        提高编译器效率,增加运行速度
    调用方式
        "use strict" ;
    作用范围
        放在文件第一行,整个文件执行严格模式    如果这行语句不在第一行,则无效,整个文件以“正常模式”运行。  
        全局
        局部, 函数内部
    具体表现
        变量必须添加var声明
        函数内参数名不能重复
        arguments对象不允许被动态改变
         this无法指向全局对象

数组常见方法
    indexOf(item,start)
        方法
            可返回数组中某个指定的元素位置,索引从0开始,找不到指定元素,则返回-1
        参数
            item    必须  查找的元素
            start
                可选的整数参数,规定在数组中开始检索的位置
        也可查找元素在字符串中的位置,   找不到返回-1
    forEach()
        方法
            用于调用数组的每个元素,并将元素传递给回调函数。没有任何返回值.
            该方法需要一个函数作为参数
                像这种函数,由我们创建但不由我们调用的,称为回调函数
                数组中有几个元素,函数就会执行几次,
                浏览器在回调函数中传递三个参数
                    第一个    当前正在遍历的元素
                    第二个    当前正在遍历的元素的索引
                    第三个    当前正在遍历的数组
    map()    
        array.map(function(value,index,arr))
        返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
        不会改变原始数组
    filter()
        array.filter(function(currentValue,index,arr))
        返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值
        不会改变原始数组
    trim()
        用于删除字符串的头尾空白符
        空白符包括:  空格  制表符tab  换行符  等
        不会改变原始数组
        不适用于null  undefined  Number类型
    find()
        寻找目标元素,找到则返回
        找不到则返回undefined
    findIndex()
        返回目标元素的索引
    some()
        找到满足条件的返回true,找不到返回false,找到即停止循环
    reduce()
        对数组进行累加

字符串方法
    charAt(index)
        返回指定位置的元素,index为下标
    substring(start,end)
        截取字符串,包含start,不包含end
    slice()
        字符串截取,和substring一致
    replace(待替换的,替换之后的)
        字符串替换
        最好配合正则使用
        默认值替换一次
    split()
        将字符串转化为数组
        可添加分割符
    lastIndexOf()
        返回字符串最后出现的位置
    toLowerCase()
        转成小写
    toUpperCase()
        转成大写

字符集
    概念
        将汉字保存到底层需要的编码
    分类
        gbk
        utf8
    api
        charCodeAt()  给定字符,返回编码
        fromCharCode()  给编码,返回字符串

前后台交互流程
    js重要作用之一
        ----交互----人机交互(事件)----服务器交互(ajax).
        服务器交互,从服务器获取数据,数据的处理方式,将json----转换成字符串操作.

对象扩展
    引用
        值引用
            简单数据类型 引入变量存储的时候,存的是值本身
        地址引用
            复杂数据类型,,引入变量存的时候,存的是引用、地址
    对象复制
        深复制
            复制完成,两个对象之间没有关联
        浅复制
            仅仅是复制地址

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值