JavaScript学习记录(二)

  • 数组
    • 创建数组
    • 访问数组元素
    • 新增数组元素
      • 案例:筛选数组
    • 删除数组指定元素(数组去重)
    • 翻转数组
    • 冒泡排序
  • 函数
    • 带参数的函数
    • 带有返回值的函数
    • arguments
    • 函数的两种声明方式
  • 作用域
    • 作用域链
    • 闭包
  • 预解析
  • 对象
    • 创建对象
    • 构造函数
    • for...in语句 遍历对象
  • 内置对象
    • 通过查文档学习
    • Math对象
      • 随机数方法:
    • Date日期对象
      • Date的参数:
      • 日期格式
  • 数组对象
    • 检测是否为数组
    • 增删数组元素
    • 数组排序:
    • 获取数组元素索引
      • 数组去重
    • 数组转换为字符串
  • 字符串对象
    • 基本包装类型
    • 字符串的不可变性
    • 根据字符返回位置
    • 根据位置返回字符
    • 案例:统计字符串中出现最多的字符和次数
    • 字符串操作方法
  • 简单数据类型与复杂数据类型
    • 堆和栈
    • 简单数据类型传参
    • 复杂数据类型传参

数组

创建数组

利用new创建数组

        var arr1 = new Array();//创建了一个空的数组

利用 数组字面量 创建数组

        var arr2 = [];//创建了一个空的数组var arr3 = [1,'2','kalise',true];

因为第二种简便,通常用第二种

访问数组元素

        var arr3 = [1,'2','kalise',true];console.log(arr3);console.log(arr3[2]);//kalise

索引号依旧是从0开始的
在这里插入图片描述
遍历可以使用for循环,略
数组的长度:数组名.length

        var arr3 = [1,'2','kalise',true];console.log(arr3.length);//4

案例:数组最大值
求数组[2,6,1,77,52,25,7,88,72,43,56]中的最大值:

        var arr = [2,6,77,52,25,7,88,72,43,56];var max=0;for(var i=0;i<arr.length;i++){max>arr[i] ? true:max=arr[i];}console.log(max);

新增数组元素

1.修改length长度:增加 length长度,未赋值的部分为undefined;减少 length会舍弃多出的元素;
2.修改数组索引:

        var arr1 = [1,2];arr1.length=3;console.log(arr1[2]);//undefinedvar arr2 = [3,4];arr2[2]=5;console.log(arr2);//[3,4,5] length:3

对没有定义的数组元素赋值,是增加元素;对已定义的元素赋值就是覆盖

案例:筛选数组

要求:将数组[2,0,6,1,77,10,52,20,25,7]中大于等于10的元素选出来,放入新数组。
方法一:定义一个变量 j

       var arr=[2,0,6,1,77,10,52,20,25,7];var arrNew=[];var j=0;for(var i=0;i<arr.length;i++){/*	if(arr[i]>=10){arrNew[j]=arr[i];j++;} */arr[i]>=10 ? arrNew[j++]=arr[i]:true;}console.log(arrNew);

方法二:使用 arrNew.length

       var arr=[2,0,6,1,77,10,52,20,25,7];var arrNew=[];for(var i=0;i<arr.length;i++){arr[i]>=10 ? arrNew[arrNew.length]=arr[i]:true;}console.log(arrNew);

删除数组指定元素(数组去重)

要求:将数组[2,0,6,1,77,0,52,0,25,7]中的0去掉后,形成一个不包含0的新数组。

       var arr=[2,0,6,1,77,0,52,0,25,7];var arrNew=[];for(var i=0;i<arr.length;i++){arr[i]!=0 ? arrNew[arrNew.length]=arr[i]:true;}arr.length=arrNew.length;for(var i=0;i<arr.length;i++){arr[i]=arrNew[i];}console.log(arr);

翻转数组

       var arr=[2,0,6,1,77,0,52,0,25,7];var arrNew=[];for(var i=0;i<arr.length;i++){arrNew[arr.length-1-i]=arr[i];}/*for(var i=arr.length-1;i>=0;i--){arrNew[arrNew.length]=arr[i];}*/console.log(arrNew);

冒泡排序

假设一个数组有n个数,要求从小到大排:
理解:
从左到右,每两个相邻的数,从前两个数开始依次向右比较,每次的较大者放在右侧,直到最后两个数,从而确定最大的数在最右侧,至此是一轮;在上一轮中确定的数将不再参与比较;以此循环n-1次,确定n-1个数,最后一个数一定是最小的。
确定 i:只需确认n-1个数,i是从0开始的,所以 i<arr.length-1
确定 j:比较前 已经确定的数 的个数为 i,进行比较的是arr[j]arr[j+1],j也是从0开始的,所以 j+1<arr.length-i
在这里插入图片描述

	    var arr=[4,5,1,3,2];for(var i=0;i<arr.length-1;i++){for(var j=0 ;j<arr.length-i-1;j++){if(arr[j]>arr[j+1]){var temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}console.log(arr);

蓝框表示需要比较的两个数;红色表示比较之后的结果;橘色框表示循环后确定的数,粉色表示数组索引号

我自己也写了一个排序,本以为是冒泡排序,但从算法来看,不大一样,先放这:

       var arr=[4,5,1,3,2];for(var i=0;i<arr.length;i++){for(var j=i+1;j<arr.length;j++){if(arr[i]>arr[j]){var temp=arr[i]arr[i]=arr[j];arr[j]=temp;}}}console.log(arr);

函数

function functionname()
{// 执行代码
}

带参数的函数

function getSum(num1,num2){console.log(num1 + num2);
}
//1.正常输出
getSum(1,2);//3
//实参个数>形参个数,会取到形参的个数,即取1、2,舍弃3
getSum(1,2,3);//3
//实参个数<形参个数,没有接收值的形参,默认为undefined
getSum(1);//NaN

带有返回值的函数

function myFunction()
{var x=5;return x;
}

在您仅仅希望退出函数时 ,也可使用 return 语句。

function myFunction(a,b)
{if (a>b){return;}x=a+b
}

案例:利用函数,求任意数组中的最大值。

        function getMax(arr){var max=arr[0];for(var i=1;i<arr.length;i++){max=max>arr[i] ? max:arr[i];}return max;}var arr1=[54,46,73,28,91];console.log(getMax(arr1));

关于return:
1.return后面的语句不会执行;
2.return只能返回一个结果;returrn num1,num2;这样的只返回num2;
若想返回多个值,可以采用 数组 或者 封装成对象 返回;
3.如果函数没有return,则返回undefined;
关于break,continue,return的区别:
break:结束当前循环体;
continue:跳过本次循环,继续执行下次循环;
return:不仅可以退出循环,还能返回 值,还可以结束当前的函数体内的代码
作业:
写一个函数,用户输入一个数,能判断是否为素数(质数,只能被1和自身整除的数),并返回结果:

       function judgePrinum(num){var temp=0;for(var i=2;i<=num&&temp<=1;i++){num%i==0 ? temp++:1;}return temp==1 ? true:false;}var num=prompt('请输入:');alert(judgePrinum(num));

arguments

函数中,当我们不确定有多少个参数传递时,可以用arguments来获取。
在JS中,arguments实际上它是当前函数的一个内置对象。
所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。

        function sum(){console.log(arguments); console.log(arguments.length); console.log(arguments[2]); var n=0;for(var i=0; i<arguments.length; i++){n += arguments[i];}return n;}console.log(sum(1,2,3));

在这里插入图片描述

arguments的展示形式是一个 伪数组,可以遍历。伪数组 有以下特点:

  • 具有length属性;
  • 按索引方式储存数据;
  • 不具有数组的push,pop等方法

案例:利用函数求任意个数中的最大值:

            function getMax(){var max=arguments[0];for(var i=1;i<arguments.length;i++){if(max<arguments[i]){max=arguments[i];}}return max;}console.log(getMax(32,41,26,55,18));

案例:利用函数封装的方法,翻转任意一个数组:

        function turnArr(arr){var newArr=[];var j=0;for(var i=arr.length-1;i>=0;i--){arr[j++]=arr[i];}return newArr;}var arr1=[1,2,3,4,5,6];console.log(turnArr(arr1));

案例:函数封装冒泡排序:

        function sort(arr){for(var i=0;i<arr.length-1;i++){for(var j=0;j<arr.length-i-1;j++){if(arr[j]>arr[j+1]){var temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}return arr;}var arr=[4,1,5,8,3,2,9,7,6];console.log(sort(arr));

还有很多案例,就不写了

函数的两种声明方式

	//利用函数关键字 自定义函数(命名函数)function fn(){//语句}//函数表达式(匿名函数)var fun=function(str){console.log(str);};fun('可以传参');//(1)fun是变量名 不是函数名//(2)函数表达式声明方式 和 声明变量 差不多,只不过变量里面存的是值 而 函数表达式里面存的是函数//(3)函数表达式也可以传参

作用域

全局作用域和局部作用域(函数作用域),局部变量和全局变量 定义都和C/C++一致。
关于块级作用域:
(1)块级作用域:if {},for {}等花括号中间的区域;
(2)现阶段js中没有块级作用域 ,就是if {}中定义的变量,if 外面也能使用;
(3)js是在 es6 的时候新增的 块级作用域

注意:未定义的直接赋值使用的变量 视为 全局变量

从执行效率来看全局变量和局部变量:
(1)全局变量只有在浏览器关闭的时候才会销毁,比较占内存
(2)局部变量 当我们的程序执行完毕就会销毁,比较节约内存

作用域链

内部函数访问外部函数的变量,采取的是链式查找的方式 来决定取值,这种结构我们称为 作用域链 。。。。(就近原则)

 var num=10;function fn(){var num=20;function fun(){console.log(num);}fun();}fn();

fun()寻找num时,会先从上一层的外部函数fn()中寻找,找到num=20返回;若fn()中没有num,会再上一层找到全局里的num=10返回。

案例:结果是多少?

        function f1(){var num=123;function f2(){console.log(num);}f2();}var num=456;f1();

闭包

什么是闭包?闭包的优缺点

预解析

引子1:运行

        console.log(num);

因为num没定义,会报错;但如果:

        console.log(num);var num=10;

输出为:undefined。。。为啥子
引子2:

        fn();function fn(){console.log(11);}

可以输出 11;如果是:

        fun();var fun=function(){console.log(22);}

结果会报错!。。。???

JS 引擎运行js 分为两步: 预解析 代码执行

什么是预解析?
js引擎 会把js 里面所有的 var 还有 function 提升到当前作用域的最前面

预解析分为 变量预解析(变量提升) 和 函数预解析(函数提升)
(1)变量提升 就是把所有的变量声明 提升到当前的作用域最前面 不提升赋值操作
(2)函数提升 就是把所有的函数声明 提升到当前的作用域最前面 不执行函数

案例:想想输出的结果是什么?

        var num=10;function fn(){console.log(num);var num = 20;console.log(num);}fn();

以上代码,相当于

        var num;function fn(){var num;console.log(num);num = 20;console.log(num);}num=10;fn();

所以输出的结果为 undefined 和 20;
案例:想想输出的结果是?

        f1();console.log(c);console.log(b);console.log(a);function f1(){var a=b=c=9;//相当于var a=9;b=9;c=9;  b和c没有var声明,当全局变量//集体声明   var a=9,b=9,c=9;console.log(a);console.log(b);console.log(c);}

相当于

        function f1(){var a;a=b=c=9;console.log(a);console.log(b);console.log(c);}f1();console.log(c);console.log(b);console.log(a);

输出结果为 5个 9 和 报错;

对象

创建对象

利用对象字面量创建对象:

	var obj={uname:'张三疯',age:18,sex:'男',sayHi:function(){console.log('Hi~');}}console.log(obj.uname);console.log(obj['age']);obj.sayHi();

对象中的函数,称为 方法 ,通过 对象.方法名() 的方式调用。

利用 new Object 创建对象:

	var obj=new Object();//创建了一个空对象obj.uname='张三疯';obj.age=18;obj.sex='男';obj.sayHi=function(){console.log('Hi~');}console.log(obj.uname);console.log(obj['age']);obj.sayHi();

构造函数

因为我们一次创建一个对象,里面有很多的属性和方法是大量相同的。。。我们利用函数的方法,重复这些相同的代码,我们就把这个函数称为 构造函数。这个函数不一样,里面封装的不是普通代码,而是 对象 。
构造函数 就是把我们对象里面一些 相同的属性和方法 抽象出来封装到函数里面。
构造函数 类似于C/C++和Java里面的 类(class)
利用构造函数创建对象:

	function 构造函数名(){this.属性 =;this.方法 = function(){}}new 构造函数名();

构造函数的函数名首字母大写;构造函数不需要return,就可以返回结果

	function Star(uname,age,sex){this.name=uname;this.age=age;this.sex=sex;this.sing=function(song){console.log(song);}}var ldh = new Star('刘德华',18,'男');//调用函数返回的是一个对象console.log(ldh['name']);ldh.sing('冰雨');var zxy = new Star('张学友',19,'男');console.log(zxy.name);console.log(zxy.age);zxy.sing('李香兰');

调用构造函数必须使用new,只要new Star()调用函数就创建了一个对象

new在执行时会做的4件事情:

  1. 在内存中创建一个新的空对象
  2. 让this指向这个新的对象
  3. 执行构造函数里面的代码,给这个新对象添加属性和方法
  4. 返回这个新对象(所以构造函数里面不需要return)

for…in语句 遍历对象

        var obj = {name : 'kalise',age : 18,sex : '男'}for(var k in obj){console.log(k);//输出 变量k,得到的是 属性名console.log(obj[k]);//输出 obj[k] ,得到的是属性值}

在这里插入图片描述
作业:

  1. 创建一个电脑对象,该对象要有颜色,重量,品牌,型号,可以看电影,听音乐,打游戏和敲代码。
  2. 创建一个按钮对象,该对象中包括包含宽,高,背景颜色和点击行为。
  3. 创建一个车的对象,要该对象要有重量,颜色,牌子,可以载人,拉货和耕田。
  4. 写一个函数,实现反转任意数组。
  5. 写一个函数,实现对数字数组的排序。
    小组项目:
    做一个简易计算器:在这里插入图片描述

内置对象

  • JS的对象分为3种:自定义对象、内置对象、浏览器对象
  • 内置对象 就是JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)
  • 内置对象最大的优点就是帮助我们快速开发
  • JavaScript提供了多个内置对象:Math、Date、Array、String等

通过查文档学习

学习一个内置对象的使用,只要学会其常用成员的使用即可,我们可以通过查文档学习,可以通过MDN来查询。
MDN:https://developer.mozilla.org/zh-CN/

可以输入函数/方法找用途,也可以输入作用找函数/方法

Math对象

Math内置对象使用手册

    	console.log(Math.PI);console.log(Math.max(1,22,44));console.log(Math.abs(-1));//绝对值console.log(Math.abs('-1'));//隐式转换console.log(Math.floor(1.9));//向下(小)取整console.log(Math.ceil(2.1));//向上(大)取整console.log(Math.round(1.4));//四舍五入console.log(Math.round(1.5));//Math.round()  其他数字都是四舍五入,但  .5  特殊,往大的取console.log(Math.round(-1.1));//-1console.log(Math.round(-1.5));//这个结果是 -1 ,因为-1>-2 

在这里插入图片描述

随机数方法:

Math.random()的小细节:
Math.random() 函数返回一个浮点数, 是一个范围在[0,1)之间的伪随机数。这个方法里面不跟参数
如果需要的是整数或有其它需求,可从上面的链接里查找。
比如:我们想要得到两个整数之间的随机整数,并且包含着两个整数:

        function getRandom(min,max){return Math.floor(Math.random()*(max - min + 1)) + min;}console.log(getRandom(1,10));

案例:猜数字游戏
程序随机生成一个1~100之间的数字,并让用户输入一个数字

  1. 如果大于该数字,就提示数字大了,继续猜;
  2. 如果小于该数字,就提示数字小了,继续猜;
  3. 如果等于该数字,就提示猜对了,结束程序。
  4. 只有10次的机会
        function getRandom(min,max){return Math.floor(Math.random()*(max - min + 1)) + min;}var result = getRandom(1,100);// console.log(result);var num;var i=10;var numTop=100,end=1;do {num = prompt('请输入数字:('+end+'~'+numTop+')');i--;if(num>result){numTop=num;alert('很遗憾╮(╯﹏╰)╭数字大了\n您还有'+i+'次机会');}else if(num==result){alert('恭喜你猜对了!\n‧★,:*:‧\( ̄▽ ̄)/‧:*‧°★*  \n结果就是'+result);break;}else{end=num;alert('很遗憾╮(╯﹏╰)╭数字小了\n您还有'+i+'次机会');}}while(i>0)if(i==0){alert('很遗憾机会已用完~游戏结束了\n╮(╯﹏╰)╭');}

Date日期对象

Date日期对象使用手册
创建一个新Date对象的唯一方法是通过new 操作符,例如:var now = new Date();同理:

var arr = new Array();//创建了一个数组对象
var obj = new Object();//创建了一个对象实例

若将它作为常规函数调用(即不加 new 操作符),将返回一个字符串,而非 Date 对象。

        console.log(Date());//Thu Jan 20 2022 10:59:50 GMT+0 800 (中国标准时间)

Date的参数:

        //使用Date,如果没有参数,返回当前系统的当前时间var date = new Date();console.log(date);//参数常用的写法  数字型  2022,01,20  或者是  字符串型  '2022-1-20 10:59:50'var date1 = new Date(2022,01,20);console.log(date1);//返回的是 2月 而不是 1月var date2 = new Date('2022-1-20 10:59:50');//最常用console.log(date2);

在这里插入图片描述
Date对象和Math对象不一样,Date()是一个构造函数,所以我们需要实例化后才能使用

日期格式

年月日星期

        var date = new Date();console.log(date.getFullYear());//返回当前日期的年  2022console.log(date.getMonth()+1);//月份  返回的月份小1个月  记得月份加1console.log(date.getDate());//返回的是几号console.log(date.getDay());//周一返回的是1,周六返回的是6,周日返回的是0//我们写一个 2022年1月20日 星期四var year = date.getFullYear();var month = date.getMonth()+1;var dates = date.getDate();var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];var day = date.getDay();console.log('今天是:'+year+'年'+month+'月'+dates+'日 '+arr[day]);

在这里插入图片描述
时分秒

        var date = new Date();console.log(date.getHours());//时console.log(date.getMinutes());//分console.log(date.getSeconds());//秒//要求封装一个函数返回当前的时分秒 格式 08:08:08function getTime(){var time = new Date();var h = time.getHours();h = h<10 ? '0'+h : h;var m = time.getMinutes();m = m<10 ? '0'+m : m;var s = time.getSeconds();s = s<10 ? '0'+s : s;return h + ':' + m + ':' + s;}console.log(getTime());

在这里插入图片描述
两个合并一下:

        var date = new Date();var year = date.getFullYear();var month = date.getMonth()+1;var dates = date.getDate();var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];var day = date.getDay();//要求封装一个函数返回当前的时分秒 格式 08:08:08function getTime(time){var h = time.getHours();h = h<10 ? '0'+h : h;var m = time.getMinutes();m = m<10 ? '0'+m : m;var s = time.getSeconds();s = s<10 ? '0'+s : s;return h + ':' + m + ':' + s;}console.log('现在北京时间 '+year+'年'+month+'月'+dates+'日 '+getTime(date)+' '+arr[day]);

获取日期的总的毫秒形式(时间戳)
Date对象是基于1970年1月1日(世界标准时间)起的毫秒数
我们通常利用总的毫秒数来计算时间,因为它更精确
获得Date总的毫秒数是指距离1970年1月1日过了多少毫秒数
四种方法:

        var date = new Date();//1.通过 valueOf() getTime()console.log(date.valueOf());//就是我们现在时间 距离1970.1.1 总的毫秒数console.log(date.getTime());//2.简单的写法(最常用的写法)var date1 = +new Date();//返回的就是总的毫秒数console.log(date1);//3.H5新增的console.log(Date.now());

在这里插入图片描述
案例:倒计时效果
案例分析:

  1. 核心算法:输入的时间减去现在的时间就是剩余的时间,即倒计时,但是不能拿着十分秒直接相减,比如05分减去25分,结果会是负数
  2. 用时间戳来做。用户输入时间总的毫秒数减去现在时间的总的毫秒数,得到的就是剩余时间的毫秒数
  3. 把剩余时间总的毫秒数转换成天、时、分、秒(时间戳转换为十分秒)
    转换公式如下
    d = parseInt(总秒数/60/60/24); //计算天数
    h = parseInt(总秒数/60/60 %24);//计算小时
    m = parseInt(总秒数/60 %60); //计算分钟数
    s = parseInt(总秒数%60); //计算当前秒数

课上老师的代码是:

        function countDown(time){//'2022-1-21 14:00:00'var nowTime = +new Date();var endTime = +new Date(time);var times=Math.floor((endTime-nowTime)/1000);//倒计时总秒数if(times<=0){return;}var d =Math.floor(times/3600/24);d=d>10 ? d:'0'+d;var h =Math.floor(times/3600%24);h=h>10 ? h:'0'+h;var m =Math.floor(times/60%60);m=m>10 ? m:'0'+m;var s =Math.floor(times%60);s=s>10 ? s:'0'+s;return d+'天 '+h+':'+m+':'+s;}console.log(countDown('2022-1-21 14:00:00'));

这样只能显示一次剩余时间,不能自动计时倒数;留下一篇文章,日后细究:【JavaScript】分秒倒计时器

数组对象

new Array(),其实就是第二种创建数组的方式:

var arr1 = new Array();//创建一个空的数组
var arr2 = new Array(2);//创建了一个长度为2的数组,数组元素为空
var arr3 = new Array(2,3);//等价于arr3=[2,3]

检测是否为数组

函数传参,当形参为数组而实参不为数组时,会出现bug,所以需要检测传递过来的参数是否为数组。
注意大小写:

		var arr = [];var obj = {};//第一种方式:instanceof 运算符 console.log(arr instanceof Array);//返回trueconsole.log(obj instanceof Array);//返回false//第二种方式:Array.isArray(参数); H5新增的方法console.log(Array.isArray(arr));//trueconsole.log(Array.isArray(obj));//false

增删数组元素

方法名说明返回值
push(参数1…)在数组末尾添加一个或多个元素返回新的长度
pop()删除数组最后一个元素,把数组长度减1返回它删除的最后一个元素的值
unshift(参数1…)在数组的开头添加一个或更多元素返回新的长度
shift()删除数组的第一个元素,数组长度减1返回删除的第一个元素的值
        //push()var arr = [1,2,3];console.log(arr.push(4,'kalise'));//5console.log(arr);//unshift()console.log(arr.unshift('good'));console.log(arr);//pop()console.log(arr.pop());console.log(arr);//shift()console.log(arr.shift());console.log(arr);

在这里插入图片描述
案例:筛选数组
有一个包含工资的数组[1500,1200,2000,2100,1800],要求把数组中工资超过2000的删除,剩余的放到新数组中:

        var arr = [1500,1200,2000,2100,1800];var arrNew = [];for(var i=0;i<arr.length;i++){if(arr[i]<2000){//arrNew[arrNew.length]=arr[i];arrNew.push(arr[i]);}}

数组排序:

方法名说明是否修改原数组
reverse()颠倒数组中元素的顺序会改变原来的数组,返回新数组
sort()对数组的元素进行排序会改变原来的数组,返回新数组

注意arr.sort(function(a,b){return b-a;});的写法。更多

        //翻转数组var arr = ['red','blue','yellow'];arr.reverse();console.log(arr);//数组排序(冒泡排序)var arr1 = [12,4,7,34,26,10,8];arr1.sort(function(a,b){//return a-b;//升序的顺序排序return b-a;//降序的顺序排序});console.log(arr1);

在这里插入图片描述

获取数组元素索引

方法名说明返回值
indexOf()在数组中查找给定元素的第一个索引如果存在,返回索引号;如果不存在,返回-1
lastIndexOf()在数组中查找给定元素的最后一个索引如果存在,返回索引号;如果不存在,返回-1
        var arr = ['red','green','blue','pink','blue','black'];//有两个blueconsole.log(arr.lastIndexOf('blue'));console.log(arr.indexOf('blue'));console.log(arr.indexOf('yellow'));

在这里插入图片描述

数组去重

有一个数组[‘c’,‘a’,‘z’,‘a’,‘x’,‘a’,‘x’,‘c’,‘b’],要求去除重复元素。

        var arr = ['c','a','z','a','x','a','x','c','b'];function unique(arr){var arrNew = [];for(var i=0;i<arr.length;i++){//if(arrNew.indexOf(arr[i])===-1)if(i==arr.indexOf(arr[i])){arrNew.push(arr[i]);}}return arrNew;}console.log(unique(arr));

数组转换为字符串

方法名说明返回值
toString()数组转换成字符串,每一项之间用逗号分隔一个字符串
join(‘分隔符’)数组转换成字符串,每一项之间用输入的 分隔符 分隔一个字符串
        //toString()var arr = [1,2,3];console.log(arr.toString());//1,2,3//join(分隔符)var arr1 = ['green','blue','pink'];console.log(arr1.join());//green,blue,pinkconsole.log(arrr1.join('-'));//green-blue-pink

课后查询:

方法名说明返回值
concat()连接两个或多个数组 不影响原数组返回一个新的数组
slice()数组截取slice(begin,end)返回被截取项目的新数组
splice()数组删除splice(第几个开始,要删除的个数),注意,这个会影响原数组返回被删除的项目的新数组

slice()和splice()的目的基本相同,建议重点看splice()。链接指南:concat();slice();splice()

字符串对象

	var str = 'andy';console.log(str.length);//4

思考:对象 才有 属性和方法,复杂数据类型 才有 属性和方法,简单数据类型为什么会有length属性呢?

基本包装类型

就是把 简单数据类型 包装成为了 复杂数据类型。这样基本数据类型就有了属性和方法。
当你写出str.length时,相当于执行了:

	//(1)生成临时变量,把简单数据类型包装为复杂数据类型var temp = new String('andy');//(2)把临时变量的值 给 strstr = temp;//(3)销毁临时变量temp = null;

JS提供了三个特殊的引用类型:String、Number和Boolean。

字符串的不可变性

当我们var str = 'andy'时,就在内存中开辟了一个空间,在里面存放'andy',然后声明一个变量 str,用这个 str 指向存放'andy'的空间;当我们str = 'city'时,又会在内存中在开辟一个空间存放'city',让 str 重新指向'city'的空间,'andy'的空间并没有销毁、改变。
因为字符串的不可变性,所以不要大量的拼接字符串。

根据字符返回位置

字符串的所有方法,都不会修改字符串本身(字符串是不可变的),操作完成后会返回一个新的字符串。

方法名说明
indexOf(‘要查找的字符’,开始的位置)返回指定内容在原字符串中的位置,如果找不到就返回-1,开始的位置是index索引号
lastIndexOf()从后往前找,只找第一个匹配的
        var str = '改革春风吹满地,春天来了';console.log(str.indexOf('春'));//2console.log(str.indexOf('春',3));//8console.log(str.lastIndexOf('春'));//8

案例:返回字符串位置
查找字符串’abcoefoxyozzopp’中所有o出现的位置以及次数
老师的范例:

        var str = "abcoefoxyozzopp" ;var index = str.indexOf('o');var num = 0;while ( index !==-1) {console.log(index);num++ ;index = str.indexOf('o', index + 1);}console.log( 'o出现的次数是:'+ num);

我的:

        var str = 'abcoefoxyozzopp';function seekO(){var temp = -1;var arr = [];do{temp=str.indexOf('o',temp+1);if(temp!=-1){arr.push(temp);}}while(temp!=-1)return arr;}var arr=seekO();console.log('共出现了'+arr.length+'次,分别在'+arr.join('、')+'处。');

根据位置返回字符

方法名说明使用
charAt(index)返回指定位置的字符(index符号串的索引号)str.charAt(0)
charCodeAt(index)获取指定位置处的ASCII码(index索引号)str.charCodeAt(0)
str[index]获取指定位置处字符HTML5,IE8+支持 和charAt()等效
        // 1. charAt(index) 根据位置返回字符var str = 'andy';console.log(str.charAt(3));//遍历所有的字符for(var i=0;i<str.length;i++){console.log(str.charAt(i));}// 2. charCodeAt(index) 返回相应索引号的字符ASCII值 目的: 判断用户按下了那个键console.log(str.charCodeAt(0)); // 97// 3. str[index] H5新增的console.log(str[0]); // a

案例:统计字符串中出现最多的字符和次数

做案例之前先理解一下,以下代码:

        var o = {age:18}if(o['age']){console.log('有age');//输出}else{console.log('没有age');}if(o['sex']){console.log('有sex');}else{console.log('没有sex');//输出}

o[‘age’] 返回的是18;o[‘sex’] 返回的是undefined
理解之后做以下案例:
判断一个字符串’abcoefoxyozzopp’中出现次数最多的字符,并统计其次数。(重点案例)
核心算法:

  • 利用charAt() 遍历这个字符串
  • 把每个字符都存储给对象,如果对象没有该属性,就为1,如果存在了就+1
  • 遍历对象,得到最大值和该字符
        var str = 'abcoefoxyozzopp';var o = {};for(var i = 0;i<str.length;i++){//str.charAt(i)为每一个字符:'a','b','c'...if(o[str.charAt(i)]){o[str.charAt(i)]++;}else{o[str.charAt(i)]=1;}} //遍历var max = 0;var ch = '';for(var k in o){//k 得到的是 属性名;o[k]得到的是 属性值if(o[k]>max){max = o[k];ch = k;}}console.log('出现最多的字符是'+ch+',共出现了'+max+'次'); /*var maxchar=str.charAt(0);for(var k in o){// console.log(k+':'+o[k]);maxchar=o[maxchar]>o[k] ? maxchar:k;} console.log('出现最多的字符是'+maxchar+',共出现了'+o[maxchar]+'次'); */

字符串操作方法

方法名作用说明
concat(str1,str2,str3…)连接用于连接两个或者多个字符串。拼接字符串,等效于+。
substr(start,length)截取从start位置开始(索引号),length是取的字符个数(重点记住这个)
slice(start,end)截取从start位置开始,截取到end位置,end取不到(他们俩都是索引号)
substring(start,end)截取从start位置开始,截取到end位置,end取不到 基本和slice相同 但是不接受负值
replace(‘a’,‘b’)替换a为 被替换的字符,b为 替换为的字符。只能替换第一个字符,全部替换需要使用循环
split(‘分隔符’)转换将字符串转换为数组,str=‘red,pink,blue’; str.split(’,’);//[‘red’,‘pink’,‘blue’]

课下查询:toUpperCase() //转换大写; toLowerCase() //转换小写
作业:
给定一个字符串,如: "abaasdffggghjkkglddssss3444343” ,问题如下:
1、字符串的长度
2、取出指定位置的字符,如:0,3,5,9等
3、查找指定字符是否在以 上字符串中存在,如:i , c , b等
4、替换指定的字符,如:g替换为22,ss替换为b等操作方法
5、截取指定开始位置到结束位置的字符串,如:取得1-5的字符串
6、找出以上字符串中出现次数最多的字符和出现的次数

简单数据类型与复杂数据类型

简单数据类型=基本数据类型=值类型:string,number,boolean,undefined,null
复杂数据类型=引用类型:对象、数组
简单数据类型中 null 返回的是一个空的对象 object

堆和栈

堆栈空间分配区别:
1、栈(操作系统) :由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈;
简单数据类型存放到栈里面
2、堆(操作系统) :存储复杂类型(对象) ,一 般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。
复杂数据类型存放到堆里面
简单数据类型:声明age,在栈中开辟空间存放18,age指向它;
复杂数据类型:声明arr,在堆中开辟空间存放数组的值[1,2,3],在栈中开辟空间存放 数组的地址,arr指向地址,地址指向数组的值;
var age = 18;var arr = [1,2,3];
在这里插入图片描述

注意: JavaScript中没有堆栈的概念,通过堆栈的方式,可以让大家更容易理解代码的一些执行方式,便于将来学习其他语言

简单数据类型传参

说简单点就是,形参是函数新开辟的空间,对外面的实参没有影响。跟那个局部变量差不多的概念。

复杂数据类型传参

在这里插入图片描述
-------------------------------------------------------------------------- 分割线---------------------------------------------------------------------------

这两篇是我跟着B站的视频自学做的笔记,原视频BV号为BV1ux411d75J

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 花里胡哨的东西(二):IDEA集成Docker,通过CA认证方式安全链接到Docker,实现一键部署

    花里胡哨的东西&#xff08;一&#xff09;&#xff1a;IDEA集成Docker&#xff0c;通过CA认证方式安全链接到Docker,实现一键部署 一、CA认证 1、先在/usr/local目录下创建个文件夹,这里取名叫ca,然后进入ca文件夹中 mkdir -p /usr/local/ca cd /usr/local/ca2、依次执行下…...

    2024/5/9 0:09:34
  2. PAT甲级真题-C++-The Largest Generation

    The Largest Generation-->练习此题<--题目描述: A family hierarchy is usually presented by a pedigree tree where all the nodes on the same level belong to the same generation. Your task is to find the generation with the largest population. 输入描述: E…...

    2024/5/8 22:47:48
  3. IDEA配置JAVA及SCALA环境

    阅文时长| 0.11分钟字数统计| 189.6字符主要内容| 1、引言&背景 2、解决方案 3、声明与参考资料 『IDEA配置JAVA及SCALA环境』编写人| SCscHero 编写时间| 2022/1/23 AM1:1文章类型| 系列完成度| 已完成座右铭每一个伟大的事业&#xff0c;都有一个微不足道的开始。 一、引…...

    2024/5/8 22:22:53
  4. SSRF(服务器端请求伪造)漏洞

    0x00 漏洞描述 SSRF(Server-Side Request Forgery)&#xff0c;服务器端请求伪造。是一种由恶意访问者构造形成由服务端发起请求的一个安全漏洞。 一般情况下&#xff0c;SSRF访问的目标是从外网无法访问的内部系统。&#xff08;正是因为它是由服务端发起的&#xff0c;所以它…...

    2024/5/8 17:41:37
  5. golang学习笔记007--函数,包和错误处理

    目录1.函数2.包3.函数调用机制4.return语句5.递归6.函数使用注意事项和细节7.init函数8.匿名函数8.1 匿名函数使用方式18.2 匿名函数使用方式28.3 全局匿名函数9.闭包9.1 闭包介绍9.2 闭包的最佳实践10.函数的defer10.1 为什么需要defer10.2 defer注意事项10.3 defer的最佳实践…...

    2024/5/8 16:15:43
  6. 大学物理学下——静电场04电场线与电通量

    目录 1 电场线 1.1 概念 1.2 规定 1.3 电场线分布图例 1.3.1 单个正负电荷电场线分布 1.3.2 一对等量正点电荷 1.3.3 一对等量异号点电荷 1.4 电场线特征 2 电场强度通量​ 2.1 定义 2.2 通量的计算 2.2.1 匀强电场与平面夹角 2.2.2 非匀强电场&#xff0c;曲面S …...

    2024/4/14 9:51:29
  7. errors合集

    1、 不知道怎么回事&#xff0c;我这些程序包都在&#xff0c;而且都是我一个字一个字敲上去的。。。 待解决&#xff01; 2、 每次都在代码上点右键&#xff0c;出来&#xff0c;remove BOM 就好了。但是是权宜之策&#xff0c;每写一个类就会这样。 在setting里面设置&…...

    2024/4/14 7:47:59
  8. quiver()函数

    quiver()函数 - 一杯明月 - 博客园...

    2024/4/14 7:48:04
  9. 【NetLogo多主体建模入门】认识NetLogo

    Netlogo简介 小巧、轻便——可以在Web上直接用简单、易学——适合于初学者可以以文件、声音、视频等多种形式输出内容可以与Mathematica等相链接 第一个NetLogo程序 to setup clear-allset-default-shape turtles "circle"create-turtles 50[setxy random-xcor ran…...

    2024/4/19 9:56:37
  10. 假期初期对自己的“初见”

    通过复习&#xff0c;发现自己对于函数方面还不能运用随心&#xff0c;openjudge上许多题目依旧一筹莫展&#xff0c;许多方法运用上并不能实际使用&#xff0c;只明白了书面&#xff0c;还不能实际应用。在往后的假期中&#xff0c;需要多接触一些特定类型的实验题目&#xff…...

    2024/5/1 17:27:10
  11. CSS基本语法(三)

    文章目录CSS基础语法&#xff08;三&#xff09;十五、CSS定位1、为什么要使用定位2、定位组成定位模式静态定位相对定位绝对定位**固定定位粘性定位边偏移子绝父相3、定位的叠放次序4、拓展绝对定位的盒子居中定位特殊特性脱标的盒子不会触发外边距塌陷绝对定位会完全压住盒子…...

    2024/4/30 0:22:13
  12. NC4 判断链表中是否有环

    描述 判断给定的链表中是否有环。如果有环则返回true&#xff0c;否则返回false。 数据范围&#xff1a;链表长度 0 \le n \le 100000≤n≤10000&#xff0c;链表中任意节点的值满足 |val| < 100000∣val∣<100000 要求&#xff1a;空间复杂度 O(1)O(1)&#xff0c;时间…...

    2024/4/20 13:48:25
  13. thinkphp mysql索引_在in查询语句中强行使用索引,thinkphp也可行

    不得不说&#xff0c;mysql查询时选择索引不太智能。刚刚打开一个页面时候明显比其他同类页面慢很多。经分析同类页面的mysql语句结构完全一样。 explain SELECT yid,co_name FROM hy_co_main WHERE ( province_id2 and industry_id in (93,102,103,105,106,108) ) ORDER BY y…...

    2024/4/7 16:10:42
  14. CSS的复合选择器/标签指定选择器/后代选择器/并集选择器/学习笔记

    一、CSS复合选择器 复合选择器用于实现更丰富的 标签指定式选择器&#xff08;交集选择器&#xff09;&#xff1a;由两个学则器构成&#xff0c;其中一个为标签选择器&#xff0c;第二个为class选择器或id选择器两个选择器之间不能右空格&#xff0c;如&#xff1a;h2.special…...

    2024/4/22 23:18:21
  15. 力扣构建二叉树的算法及其问题

    1、背景 力扣相信大家都很熟悉&#xff0c;练习算法时大部分人都会选择该网站刷题。但是力扣的调试功能需要开通会员&#xff0c;为了方便调试&#xff0c;我写了一个算法用于构建二叉树&#xff0c;经多次测试&#xff0c;与力扣构建树的方法一致&#xff0c;如下&#xff1a;…...

    2024/4/14 7:50:51
  16. Javascript在Android webview中不起作用

    我是 Android Studio 的新手&#xff0c;遇到了一个我无法解决的问题。 我正在尝试在 webView 中运行 HTML 文件&#xff0c;但由于某种原因&#xff0c;当我尝试调用包含特定 JS 文件的特定 HTML 时&#xff0c;它会不断重新加载到我的起始页/索引文件。 注意&#xff1a;这些…...

    2024/4/14 7:48:19
  17. java 修改Chrome浏览器的默认下载路径

    java修改Chrome浏览器的默认下载路径 String path "D:\\dowmload"; ChromeOptions options setDownloadsPath(path); //chromedriver.exe的路径 File file new File("D:\\chromedriver.exe") System.setProperty("webdriver.chrome.driver",…...

    2024/4/14 14:57:47
  18. c# ToolStrip控件图片和文字显示

    如上图达到这样的效果 首先我们给属性Image和Text分别赋予需要显示的图片和文字 然后设置DisplyStyle属性为ImageAndText&#xff0c;意为同时显示图片和文字 各种设置ImageAlign和TextAlign&#xff0c;调整图片和文字的位置 设置ImageTextRelation属性&#xff0c;获取或…...

    2024/4/27 10:04:06
  19. 整理C语言和C++中常用输入输出函数

    1.C语言中的输入与输出 在C语言中我们常用输入函数“scanf”和输出函数“printf”&#xff0c;而与之配套的格式符有 程序如下&#xff1a; #include<stdio.h>//C语言版 #include<string.h>int main() {int a;//定义一个整数float b;//定义一个单精度浮点数doub…...

    2024/4/20 20:08:59
  20. vim 快捷键

    zo 展开(可以用空格代替) zc 收起(比较常用) zn 全部展开 zN 全部折叠...

    2024/4/19 16:17:36

最新文章

  1. 腾讯云CVM服务器数据盘挂载

    背景&#xff1a;新开腾讯云服务器挂载数据盘。 在腾讯云服务器上挂载数据盘通常涉及以下几个步骤&#xff0c;这里以Linux系统为例进行说明。如果您的服务器是Windows系统&#xff0c;操作界面会有所不同&#xff0c;但原理相似。1. 登录入腾讯云控制台首先&#xff0c;登录腾…...

    2024/5/9 2:28:43
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 零基础 HTML 入门(详细)

    目录 1.简介 1.1 HTML是什么? 1.2 HTML 版本 1.3 通用声明 2.HTML 编辑器 3.标签的语法 4.HTML属性 5.常用标签 5.1 head 元素 5.1.1 title 标签 5.1.2 base 标签 5.1.3 link 标签 5.1.4 style 标签 5.1.5 meta 标签 5.1.6 script 5.2 HTML 注释 5.3 段落标签…...

    2024/5/5 8:40:44
  4. JVM学习笔记

    文章目录 一、内存模型1. 程序计数器2. 栈3. 本地方法栈4. 堆5. 方法区方法区位置字符串常量池位置 6. 直接内存 二、虚拟机参数设置三、类的生命周期1. 加载2. 连接1&#xff09;验证2&#xff09;准备3&#xff09;解析 3. 初始化4. 卸载 四、类加载器1. 启动类加载器2. 扩展…...

    2024/5/7 6:47:46
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57