2021/12/28

2021/12/28

一、JavaScript

(1)数组

1.数组去重:

from()叠加new Set()方法

字符串或数值型数组的去重可以直接使用这个方法。

var arr = ['Saturn', 'Earth', 'Uranus', 'Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter'];
var uniquePlants = Array.from(new Set(plants)); 
console.log(uniquePlants); // [ 'Saturn', 'Earth', 'Uranus', 'Mercury', 'Venus', 'Mars', 'Jupiter' ]

(2)题目

1.日程安排
 var weekday = window.prompt('请输入星期几');
    var time = window.prompt('请输入输入上午,下午或晚上');
    
    switch(weekday){
          case'星期一':
          if(time=='上午'){
            alert('看书');
          } else if(time=='下午'){

            alert('逛街');
       }else if(time=='晚上'){
            alert('跳舞');
       }
            break;
    }   

      if(weekday=='星期二'){
        if(time=='上午'){
          alert('学习');
        }else if(time=='下午'){

          alert('睡觉');
        }else if(time=='晚上'){
          alert('打游戏');
        }
      }
2.斐波那契数列

前两位是确定的,n3 = n2 + n1

过程:

循环的时候取个变量n,n3 = n2 + n1;每一次循环完之后得出n3,但是没有到n位,移动一下。

第二循环的时候,把n2的值赋给n1, n3的值赋给n2,然后n3的值= n1 + n2;

循环n1n2n3
第二次112358
第三次n1n2n3
第四次n1n2n3
第五次n1n2n3
  	var n = parseInt(prompt('请输入第几位'));
          if(n<=0){
            console.log('输入错误');
          }
          
          else if(n<=2){
            console.log(1);
          }

           else{
            var n1 = 1,
              n2 = 1,
              n3 ;

             for(var i=2;i<n;i++){       //从第三位开始求的,第一位,第二位n3都是确定的(1),所以i=2;
          //当n=5得时候i=2 ,3, 4, 到第五次的时候i=5<5(false)
            n3 =n1 + n2;
            n1 = n2;//三个n向后移动,即后面赋值给前面
            n2 = n3;
          } 
          console.log(n3);
             }

(3) 函数基础

​ x,y 任意x 确定的Y x自变量 y->x函数

y=f(x) f就是function 函数值是确定的

​ 计算机函数(函数式编程)

test类似y=f(x)的y; a,b,c类似x

1.声明

function是函数关键字,声明一个test的函数

test是函数名

 function test(a,b,c) { //test类似y=f(x)的y;  a,b,c类似x的值
 } 

先声明了b,然后把1赋值给b,然后又声明了a,把b的1赋值给a

 function test(){

               // var a = b =1;
     			//var b =1;//这么写是在里面声明局部变量
     			//b = 1; 挂载到window上了,是一个全局变量了
                console.log(a,b);

            }
            test();
            console.log(a);//null
            console.log(b);//1

var b=1;在块级作用域内如函数内部的是局部变量不能挂载到window,在外面是全局变量可以挂载到window。

b=1;在任意位置都是全局变量,都会被挂载到window

2.表达式 字面量

1.需要test()调用函数才能输出

  
            var test = function test(){
                var a = 1,
                     b =2;
                console.log(a,b);
            } 

            test();

2.为什么执行test1()会报错呢

**解释:**实际上,声明了一个变量把函数赋给它的时候,就是付给了它一个函数的功能,调用test()这个方法的时候,可以正确的执行。 当一个表达式给test赋值时,他是会自动忽略test1,,是看不到test1的(不可见),这个写与不写都不影响函数的执行就是可以写成var test =function(){}test才是真正在外部调用函数的

 
            var test = function test1(){
                var a = 1,
                     b =2;
                console.log(a,b);
            } 
            console.log(test.name);//test1
            test1();//报错

2.但是写了test1,也不是没有作用 :

可以在函数的内部调用的,外部不可见。

递归


            var test = function test1(){
                var a = 1,
                     b =2;
                console.log(a,b);
                test1();//在这里执行test1,会 无限循环执行
            } 
            console.log(test.name);//test1
            test();

3.匿名函数

当用表达式去定义函数的时候,后面的函数是匿名函数

这种定义函数的方式就叫:匿名函数表达,或者叫函数字面量


            var test = function(){ //匿名函数
                var a = 1,
                     b =2;
                console.log(a,b);
               
            } 
       
         	 test();

字面量是什么,比如var a =10;10就是字面量,或者var arr=[]数组字面量。

函数字面量就是function(){}包含里面的内容,即赋值给test 的这个值就是函数字面量

3.函数的组成部分

function 函数名 参数(可选){} 可以没有返回值()但是要有返回 return是必须要有的

下面代码没写return的原因是:

函数执行到最后一行,系统会自己增加一条return语句,并不是没有,是系统增加的


            var test = function(){ //匿名函数
                var a = 1,
                     b =2;
                console.log(a,b);
                //return; 
               
            } 
       				
         	 test();
4.命名规则

1.不能数字开头

2.可以字母_$

3.包含数字

4.小驼峰命名法 复合单词myWonderfulTest(第一个小写,后面单词首字母都大写)

5.按照公司规范来,如某些公司写my_Wonderful_Test

5.高内聚,低耦合

耦合(各个代码块,重复的代码太多了,代码重复率太高了)

​ 计算机追求:高内聚,低耦合 -> 模块的单一责任制(希望独立完成,不依赖其他模块)

高内聚:开发一个功能(一个模块),代码相关性强(内部的代码,紧密联系度比较强->模块(功能)独立性强)。

​ 我们希望一个模块,他能够独立的去完成一个任务,任务完成的好坏,是跟高内聚有关系的

低耦合:把重复的代码给抽象出来,就是提取出来,组成一个独立的功能体,或者是一个模块,去完成一个特定的功能。

高内聚,低耦合的目的:让一个功能体,一个代码块或者说模块,它有强的功能性,高的独立性,

​ 也就是说,它放在哪里,我要用的时候,直接可以抽取它出来,然后直接去调用它就可以。

1.如下面就是耦合的例子

		if(1){
              for(var i =0;i<10;i++){
                console.log(i);
              }
            }
            if(2>0){
              for(var i =0;i<10;i++){
                console.log(i);
              }
            }
            if(3>0){
              for(var i =0;i<10;i++){
                console.log(i);
              }
            }

2.解耦合:

基于函数


            if(1){
              test();
            }
            if(2>0){
              test();
              
            }
            if(3>0){
              test();
              }
            
            function test(){

             for(var i =0;i<10;i++){
                console.log(i);


            }
          }   
6.函数例题

1.一次性输入一串数字,输出最大值

   var nums =prompt('请输入数字,用逗号隔开');
           var arr2 =nums.split(',');//在arr数组里面存入用户数据,定义分隔符
            //var arr2=[];//定义另一个空数组
            //for(i=0; i<arr.length;i++){  //遍历arr中的数组下表

                  // arr2.push(parseInt(arr[i]));//arr2数组一个个把数据(用户输入的一串在arr数组里面的值)取出来

           // }   

     function fn(arr2){
		var max=arr2[0];//定义一个初始最大值,遍历arr2数组中的数据,从第一位到最后
             for(var i=0;i<arr2.length;i++){  //遍历arr2的数组下标
              
                 if(max<arr2[i]){  //将max与arr数组中的数字按下标顺序一个个进行比较
            	
                     max = arr2[i];  //遇到数组中比自己大的就将大的值赋给max
                     
                          }
                 
                             }
                     alert(`最大值为${max}`);
                           }
            fn(arr2);//调用函数,将arr2数组里的参数一个个传过来

注意:

在JS中想要使用${}获取变量 要在 ``中使用不是单引号

类似于c语言中printf("最大值为%d\n",max);

新东西

$()用法

https://zhidao.baidu.com/question/146836644.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值