前端学习(本人在参照阮一峰老师写的ES5、和ES6进行学习https://wangdoc.com/javascript/basic/introduction、https://es6.ruanyife)

JavaScript

1.数据类型

1.1 变量

· 变量名区分大小写,允许包含字母、数字、美元符号($)和下划线,但第一个字符不允许是数字,不允许包含空格和其他标点符号

变量命名长度应该尽可能的短;尽量避免使用没有意义的命名;禁止使用JavaScript关键词、保留字全名。`

· 在JavaScript中定义变量时要严格使用变量,在JavaScript代码中第一行写'use strict';注意:IDEA需要设置ES6语法

· **局部变量**使用let定义
i=1;//只写i=1不会报错
​
'use strict'
i=1会报错

·局部变量使用let定义,常量定义用关键字constant

·内部变量不可访问外部变量

  function f1(){
            var x=1;
            function f2(){
                var y=x+1;
                console.log(y);
            }
            f2();
        }

· 内部函数的变量和外部函数的变量重名,优先使用内部函数的变量

  function f1(){
            var x=1;
            function f2(){
                var x=2;
                console.log(x);
            }
            f2();
        } 

2.number

·js不区分小数和整数,Number

123 //整数
123.1 //浮点运算符
1.123e1  
11.23 
-99  //负数
NaN  //不是整数
Infinity //无穷大

3.字符串

· 字符串使用单引号或者双引号包裹

\'  //可以在字符串中打出符号'
\n //表示换行
\t //字符串中间空格大小为tab大小
    //也可支持ASK编码或者Ascll字符

· 多行字符串缩写

        var msg=`This
                is
                a
                apple`

· 模板字符串(tab上面的``中进行定义)

        let name='pengge';
        let age=3;
        let msgs=`你好啊,${name}`

·字符串的相关方法

var student="student"

image-20240111221817460

4.布尔值

trur 、false

5.逻辑运算符

&& 与运算符,两个真则全为真
|| 一真全真
!真即假,假即真

6.比较运算符

=  //表示负值运算符
== 等于(类型不一样,值一样,也会判断为true)
===绝对等于(类型一样,值一样,会判断为true)
var score1="1";
var score2=1;
console.log(score1==score2);//结果为true

7.null和undefined

· null 空

·undefined 未定义

8. 数组

·定义数组

image-20240111230010112

·长度

arr.length

·通过下标索引

.indexof()//根据数组下标索引数组元素
·slice()//截取数组中的一部分,返回一个新数组
·push()//向数组尾部添加数据
·pop()//从数组尾部弹出数据
·unishift()//从数组头部加入数据
·shift()//从数组头部弹出数据
·sort()//对数组元素进行排序
·reverse()//数组元素反转
·concat()//不同数组元素拼接

·数组的遍历

 age=[12,13,14,15];
//第一种
        for(let i=0;i<100;i++){
        console.log(age[i]);
    }
//第二种
    age.forEach(function(value){
        console.log(value);
    });

9.集合

image-20240112105646059

·遍历Map

image-20240112111937343

·遍历set

image-20240112112048293

10.对象

·每个属性是由键值对构成,属性之间用逗号隔开,最后一个属性不需要添加逗号,取对象/对象属性赋值用person.age。

var person={
            name:"pengge",
            age:23,
            tags:['js','java']
        }

·动态的增删对象的属性

·增加:person.hobby='soccer'

·删除:delete person.name

·判断某个属性是否在对象中

'age' in person

·判断一个属性是否为该对象拥有hasOwnProperty()

person.hasOwnProperty('tostring')
//结果:false

11.函数

·函数的定义

//方式一
function abs(x){
            if(x>=0){
                return x;
            }else{
                return -x;
            }
        }
//方式二
var abs= function (x){
            if(x>=0){
                return x;
            }else{
                return -x;
            }
        }

一旦执行到return 代表函数结束,返回结果;如果没有执行return,函数执行也会返回结果,结果解释undefined;调用时使用方法名+参数

·传递参数超出限定处理

//方式一abs(1,2,3)
var abs= function (x){
            for (var key   of  arguments) {
                console.log(key);
            }
            if(x>=0){
                return x;
            }else{
                return -x;
            }
        }

arguments数组保存的数据为1,2,3
//方式二abs(1,2,3)
 var abs= function (x,...rest){
            for (var key   of  rest) {
                console.log(key);//2,3
            }
            if(x>=0){
                return x;
            }else{
                return -x;
            }
        }
rest数组中保存的字符为2,3 

arguments将超出的部分以数组的形式保存起来

12.面向对象编程

1.对象名.proto

 var student={
            age:23,
             fly:function(){
                console,console.log(this.name+"can fly");
            }
        };
        var xiaoming={
            name:"xiaoming"
        };

        xiaoming.__proto__ =student;//小明以student为模板

2.class关键字

1.定义一个类,属性,方法
  class  Student{
            constructor(name){
                this.name;
            }
            hello(){
                alert('hello');
            }
        }
         var xiaoming=new Student("xiaoming");
//在new一个对象时,会调用该类的构造方法,比如此例子中将xiaoming传给constructor的name,使小明的name为xiaoming
2.继承
        class  Student{
            constructor(name){
                this.name;
            }
            hello(){
                alert('hello');
            }
        }
        class monitor extends Student{
            constructor(name,grade){
                super(name);//子类继承弗雷德构造方法
                this.name=name;
                this.grade=grade;
            }
        }
         var person1=new monitor("xiaoming",98)

补充Java内容:

·子类实例化对象时,会先调用父类的构造器 ​ ·如果子类的构造器没有显示的调用父类的构造器 ,默认调用super(); ​ ·子类要使用父类有参的构造器,使用super(参数)形式,且super必须是子类构造方法中的头一条语句。 ​ ·如果父类没有不带参数的构造器,且子类的构造器中又没显示的调用父类其他构造器,则Java编译器将报告错误。

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值