2021-11-29

一、数组
    1.数组:存储一系列有序数据的集合
    2.数组数据类型:复杂数据类型(对象类型或引用类型)---Array
    3.创建数组
    字面量方式创建数组
         var 数组名=[]   构造函数创建数组
        var 数组名=new Array()
    4.访问数组元素
    
    数组名[索引号]
    
            数组的第一个元素索引号从0开始
    5.数组长度
    元素的个数,也叫数组长度
    语法:
       数组名.length
二、数组常用方法
1.push:是用来在数组的末尾追加一个元素
   语法: 数组名.push(元素)
2.pop:是用来删除数组末尾的一个元素
   语法: 数组名.pop()
3.unshift:在数组前面添加元素
    语法:数组名.unshift(元素)
4.shift:删除数组第一个元素
    语法:数组名.shift()
5.splice:截取数组中的某些内容,按照数组索引号来截取
    语法:数组名.splice(数组索引,删除个数,替换内容)
6.reverse:反转函数
    语法:数组名.reverse()
7.sort:排序--默认升序--按字典顺序排序,用于个位数排序
         语法:数组名.sort()
8.concat:把多个数组进行拼接
         语法:数组名.concat(数组名)
9.join:把数组里面的每一个项内容连接起来,变成一个字符串
            语法:数组名.join()
10.indexOf:用来找数组中某一项的索引号,如果找不到,返回 -1
            语法:数组名.indexOf(元素)
            作用:判断元素是否在数组中,如果返回 -1,表示元素不在数组中
三、数组常用遍历的方法
1.forEach
    语法:数组名.forEach(function(item,index,oldArr){
    item:数组元素
    index:索引号
    oldArr:原始数组
    })
    注:函数参数个数不规定
2.map:返回一个新数组
    语法:数组名.map(function(item,index,oldArr){
    
    })
3.filter:把原始数组中满足条件的元素返回新数组
    语法:数组名.filter(function(item,index,oldArr){
    
    })
4.find:查找原始数组中满足制定条件的第一个元素,返回是元素
    语法:数组名.find(function(item,index,oldArr){
    
    })
5.every:数组中是否每个元素都满足指定条件,全部满足返回true,否则返回false
    语法:数组名.every(function(item.index,oldArr){
    
    })
6.some:数组中是否满足指定条件,只要有一个满足,返回true
    语法:数组名.some(function(item,index.oldArr){
    
    })
7.reduce:接收一个方法作为累加器,数组中的每一值(从左到右)开始合并,最终为一个值
    语法:数组名.reduce(function(s,item,index){
    return s+item
    },0)  0是函数参数s的初始值

2021-11-30

一、交换数组元素示例
var arr=[20,30,10,20]
function swap(i, k) {
            var temp = arr[i]
            arr[i] = arr[k]
            arr[k] = temp
            console.log(arr);
        }

        swap(1,2)
二、冒泡排序
    1.思想:相邻两个数,两两比较,如果前一个数比后一个数大,交换位置,一轮之后最大的数沉底,在未排序的数中重复以上操作。
    2.示例
  j 冒泡次数       i 循环变量       比较次数
                1                 0                4
                2                 1                3
                3                 2                2
                4                 1                1
                
                元素个数
                n                                 n-i-1


var arr = [89, 98, 78, 68, 76]
        // j 外层循环表示冒泡排序次数
        for (var j = 0; j < 5-1; j++) {

            // 比较的次数
            for (var i = 0; i < 5-j-1; i++) {
                //挨着两个数,两两比较,如果前一个比后一个大,交换位置
                if (arr[i] > arr[i + 1]) {
                    var temp = arr[i]
                    arr[i] = arr[i + 1]
                    arr[i + 1] = temp
                }
            }

            console.log(arr)
        }

        console.log('================');

        console.log(arr)
三、选择排序
    1、首先在未排序序列中找到最小(最大)元素,存放到排序序列的起始位置(交换位置),再从剩余未排序元素中国继续寻找最小(最大)元素,然后放到已排序序列末尾,重复以操作,直到所有元素排列完毕。
    2.示例
 var arr = [89, 98, 78, 68, 76]
  var n = 5
     for (var i = 0; i < n - 1; i++) { // i: 0 , 1

            //找最小值索引号
            var minIndex = i //minIndex: 0 , 1
            for (var j = i + 1; j < 5; j++) { // 让后面的数依次与前面数比较, J :2
                if (arr[j] < arr[minIndex]) {
                    minIndex = j //minIndex:4
                }
            }
            //交换位置
            var temp = arr[i]
            arr[i] = arr[minIndex]
            arr[minIndex] = temp

            console.log('第' + (i + 1) + '次选择排序 :', arr);
        }
四、数组去重
    1、方式一:数组名.indexOf(元素)
    2、 思想:遍历数组,获取每个元素,判断是否已经存在新数组中,如果不存在,则放入新数组
    3、示例
function arrayToHeavy() {
            var arr = [1, 2, 5, 1, 8, 4, 2] // [1,2,5,8,4]
            var newArr = [] // 创建一个空数组,存储不重复的数 
            for (var i = 0; i < arr.length; i++) {
                var item = arr[i] //原数组元素  //item: 1,2,5,1,8,4,2
                if (newArr.indexOf(item) == -1) {
                    newArr.push(item) // [1,2,5,8,4]
                }
            }
            console.log(newArr);
        }

    4、方式二:splice(index,1)
    5、示例
function arraySplice() {
            var arr = [1, 2, 5, 1, 1, 8, 4, 2] // [1,2,5,8,4]

            for (var i = 0; i < arr.length; i++) {
                var item = arr[i] //item: 1
                for (var j = i + 1; j < arr.length; j++) {
                    if(item == arr[j]){  // 1-2 1-5  1-1
                        arr.splice(j,1)  // [1, 2, 5, 1, 8, 4, 2]
                        j--
                    }
                }
            }

            console.log(arr);
        }

        arraySplice()

2021-12-01


一、创建字符串
1.创建字符串
    var str=new('hell')   //构造函数创造字符串
2.访问字符串中的字符:通过字符串索引号访问
3.字符串长度:就是字符串的个数(str.length
二、包装对象
        字符串通过点语句访问字符串属性和方法时,会转换为对象,使用完之后又转换回来。这类型称为包装对象


三、字符串常用方法
1、charAt(索引号):返回指定索引位置的字符
2.、indexOf(字符):返回字符所在索引号,存在返回1,不存在返回-1
3、lastIndexOf():返回最后一个字符所在的索引号,不存在返回-1。
4、subString(起始索引,截止索引):截取字符串,不包含截止索引
5、subStr(起始索引,截取个数):截取字符串
6、replace(字符串1,字符串2):替换字符,用字符串2替换字符串1
7.split(‘分隔符’):分割字符串,将分割之后的字符串放入数组
8.concat(‘拼接字符串’):连接字符串,返回连接后的字符串
9.trim:删除字符串空格,返回去掉空格的字符串
    语法:数组名.trim()
10.startsWith(‘子字符串’):是否以子字符串开始,是返回true,否返回false
11.endsWith(‘子字符串’):是否以子字符串结束,是返回true,否返回false
12.toUpperCase:小写转大写
13.toLowerCase:大写转小写
14.includes:判断数组是否包含字符串
四、字符串模板
    1.字符串模板:用反引号引起来的字符串
    2.模板语法:`${变量}`
    3.作用:字符串拼接、字符换行    
五、遍历简单对象
for-in循环

for(var key in 对象名){

}
访问对象属性的时候,如果属性名是一个变量,使用[]形式访问

2021-12-02

一、内置对象(Math)
    1.使用方式:Math.方法名()
    2.常用方法
1random():生成0-1之间的随机数
2.ceil():讲一个小数向上取整
3.floor():将一个小数向下取整
4.round():四舍五入
5.abs():取绝对值
6.max():得到传入数中最大值
7.min():得到最小值
二、进制转换
1.变量.toString(此参数表示转为几进制)
2.parseInt():可以在字符串转换成数字的时候把字符串当成多少进制转成十进制
    语法:parseInt(要转换的字符串,几进制来转换)
三、日期对象
    1.日期对象:提供的内置构造函数,专门用来获取时间的
    2.语法
1.var 变量=new Date()  
    var date=new Date()  //获取当前时间
2. var time=new Date('2020-2-10 15:10:6')  //创建指定时间的日期对象

四、日期时间常用方法
1.getFullYear():获取年
2.getMonth():获取日
3.getDate():获取日
4.getHours():获取时
5.getMinutes():获取分
6.getSecond():获取秒
7.getDay():获取星期几
8.getTime():格林威治时间

2021-12-03

一、Bom
    1.Bom:浏览器对象模型,核心是Window窗口对象
二、window窗口对象
window窗口对象是浏览器根对象,使用他的属性方法或子对象时,可以不加window


1.open():打开一个新窗口
2.close():关闭
3.alert():消息提示框
4.confirm(提示信息):消息确认,返回true和false
5.prompt():输入框,接受输入信息

三、定时器
    1.
1.setTimeOut():在指定的毫秒数后调用函数或计算表达式
2.语法:
    setTimeOut(function(){
    //执行代码
    },执行时间)
    
    
    倒计时定时器,到了指定时间执行回调函数中代码,返回定时器对象
    
3.循环执行定时器:setInterval()
    语法:
        var 变量=setInterval(function(){
        //执行代码
        },循环时间)
        
        按照指定循环执行回调函数中代码
        clearIntval():结束setInterval定时器
        

四、
innerHeight和innerWidth属性,获取浏览器窗口的尺寸,包含滚动条

onscroll:是当浏览器感动时出发事件


位置对象:location
    location.href:获取当前URL地址栏
    location.reload():重新加载当前文档
五、DOM
    1.DOM:文档对象模型,使用JavaScript代码操作,操作HTML标签元素属性、样式。内容的能力
    2.文档对象:document
    3.获取HTML元素
1.id名获取元素:getElementById(‘id名’)
2.class名获取元素:getElementByClassName(‘class名’),返回数组,属于伪数组
3.伪数组与数组的区别:
                相同点:length属性,可以通过索引号访问
                区别:不能使用push、pop等方法
4.获取标签名:getElementByTagName(‘标签名’)
5.name属性获取(用于from表单):getElementByName(‘name名’)
6.选择器方式获取元素
                    querySelector():按照选择器方式获取元素
                    querySelectorAll():按照选择器方式获取元素,返回满足条件的所有元素,伪数组

7.innerHTML=‘新内容’:改变元素内容
8.innerText=‘新内容’:纯文本输出,不会解析标签