00_JS基础_ES6

news/2024/6/18 21:26:00 标签: javascript, es6, 前端

js的标准ECMAScript(ES),现在使用的版本为ES6

js编写的位置

1.写在HTML中的scrip标签

<script>javascript">
    //内嵌式
    console.log("hello world")
</script>
<!--引入外部的js文件,script不能使用单标签-->

2.引用中使用

<script src="../js/01_index.js">javascript">
    /*内嵌和已引入的不能写在一起,否则不起作用*/
    console.log("xxxxx")
</script>

3.在标签里面书写

代码不容易维护

<a href="javascript:console.log('aaaa')">点击</a>

js的变量

作用:多次使用变量的值,达到多次使用的目的

1.js是弱类型的语言,没严格区分数据类型,

​ 使用的关键字是var,默认的变量值是undefined

​ 变量没有定义之前不能直接使用,报错not defined

​ log是浏览器的控制台打印

<script>javascript">
    //变量的定义
    //var 变量名=张三
    var name="张三";
    console.log(name)
    var age;//默认为undefined

    //变量没有定义之前不能直接使用,报错not defined
    console.log(age)

    console.log(window)//打印所有信息
    console.error("这是一个错误信息")
  </script>

js的数据类型(重要)

数据类型由赋的值来决定的

简单类型:String,Number,Boolean,Null,undefined,

对象类型:Objiect,Array,Function

js的运算符

1.等号

​ = 将常量/变量的值赋值给另一个变量

​ == 比较值,不管类型

​ === 类型和值都进行比较,先类型比较再值的比较

<script>javascript">
  var a='1';
  var b=2;
  //  ==  比较值,不管类型
  console.log(a == b)
  
  // ===  类型和值都进行比较,先类型再值
  console.log(a === b)

</script>

2.逻辑运算符

0, null, NaN, " ", false, undefined表示为false

​ 其他的数据类型表示的为true

3.&&和||运算符的区别

&&值判断 :当全部为true的时候结果才为true(返回最后一个为true的值),当有一个false的时候结果false(返回第一个为false的值)

console.log(true && true);//true
console.log(1 && true);//true
console.log(1 && 2);//2
console.log("A" && 2);//2
console.log("" && 2);//""
console.log(null && "B");//null
console.log("A" && "B");//"B
console.log(1 && 2 && 3);//3
console.log(1 && null && 3);//null
console.log("" && null && 0);//""

||值判断 :当全部为false的时候结果为false(返回最后一个false的值),当有一个true的时候结果为true(返回第一个为true的值)

console.log(true || true);//true
console.log(1 || true);//1
console.log(1 || 2);//1
console.log("A" || 2);//"A"
console.log("" || 2);//2
console.log(null || "B");//"B"
console.log("A" || "B");//"A"
console.log(1 || 2 || 3);//"1"
console.log(1 || null || 3);//"1"
console.log("" || null || 0);//0

逻辑运算符的应用场景

给形参设置默认值的时候进行使用

若没有给形参传入值的话返回的结果就是undefined

 <script>javascript">
    function  add(a,b){
      //给形参设置默认值
      a=a||1;//a为undefined就返回1
      b=b||1;
      console.log(a+b)
    }
   add(1,2)
  </script>

js的函数

函数和java中的方法作用一样,一次编写,实现代码复用

函数的定义:

       function 函数名(形参名1,形参名2,...){
           //函数体
          [return 返回值]
       }

函数的调用

​ 对象名.方法名(参数名)

  <script>javascript">
    function add(num1,num2){
      var sum=num2+num1;
      console.log(sum);
      //return sum;
    }
    add(1,2);
  </script>

注意:

​ 1.调用函数时可以不和形参匹配(数量)

​ 2.函数如果没有返回值,默认的返回值为undefined

​ 3.如果有返回值,则返回真实值

匿名函数(重要)

可以将匿名函数看成普通的值进行理解

		1.匿名函数的定义):
function  fun(){}

​ 2.将函数赋值给变量(常用的)

var fun2=function(){
console.log("匿名函数1");
}

​ 3.**console.log(fun2);**打印整个函数的格式

ƒ (){
      console.log("匿名函数2")
    }

​ 4.**console.log(fun2());**打印两个结果

​ //里面的fun2添加了()会执行里面的方法并进行打印

​ //但是这个函数没有返回值,后台打印的值还包括undefined

匿名函数2
undefined

5.将函数作为值进行传递,将函数赋值给变量

var fun3=fun2;
//fun2加了括号就就将fun2的执行结果进行打印
var fun3=fun2();//结果为:匿名函数2

6.将函数作为形参进行传递,

//将函数作为参数进行传递
var fun4=function (f){
    console.log(f);
    f();
}
fun4(fun2)
    /*
    *结果为:
    *ƒ (){
    *   console.log("匿名函数2")
    *    }
    *匿名函数2
    *
    */

内置函数arguments

arguments:每个函数都有内置的变量,存储了函数所有的实参

使用该函数查看调用时传进来了哪些值

<script>javascript">
  //求n个数的和
 var add= function (){
    //console.log(arguments[0]);
    var sum=0;
    for (var i = 0; i < arguments.length; i++) {
      sum+=arguments[i];
    }
    console.log(sum);
  }
  add(1);
  add(1,2);
  add(1,2,3);
</script>
注意事项:

​ 调用函数的时候,传入实参个数可以和定义函数的形参个数不一致

面向对象

类依据对多个对象抽象而来,对象是由类实例化而来

1.类的定义,首字母大写

  function person(name,age){
    //属性
    this.name=name;
    this.age=age;
    //方法
    this.eat=function (){
      console.log(this.name+"想吃饭");
    }
  }

2.创建对象

//对象的创建;
  var p=new person("张三",21)
  console.log(p);
//调用对象里面的方法
  p.eat();
//访问对象的属性
console.log(p.name);
console.log(p.age);
//修改对象中属性的值
p.name="李四";

3.给对象添加或者删除属性或者方法

p.xxx="11111";
delete p.xxx;

4.创建对象的快捷方式,使用键值对的形式

var obj={
name:"张三";
age:23;
sleep:function(){
console.log()"睡觉");
}
}

内置对象

​ 查看这个对象中是否存在这个属性,返回的值时true/false

obj.hasOwnProperty("name");

​ 获取时间的毫秒值,用于获取随机数的时候进行使用

var d=new Date();
//获取毫秒值
console.log(d.getTime());

​ 对字符串的操作

var str="asdfhjkl"
//获取长度
console.log(str.length);
//根据索引取字符
console.log(str.charArt(2));
//去字符中执行区间的字符串,左闭右开的形式
console.log(str.subString(0,3));

js数组

注意:

1.js中的数组不会出现索引越界的问题,长度是不固定的

2.当访问不存在的属性的时候,js引擎会返回undefined

数组的定义方式

方式一:静态初始化

var arr=new Arry(1,2,3,4,5)

**方式二:**动态初始化,定义数组的长度

var arr=new Arry(4);

数组简写

var num=[1,2,3,4,5,6]

数组常用的属性和方法

​ 操作数组

//获取数组的长度
num.length;
//获取数组中指定索引的值
 num[2];
//修改指定索引的值
    num[3]=8;
//多个数组的拼接,返回的是一个新的数组
var num2=[5,8,9,7]
    num.concat(num2);
//给数组中的值添加分割符
num2.join("|");
//截取
num2.slice(0,2);
//删除最后一个元素
num2.pop();
    

​ 使用splice对数组进行增删改

//使用splice关键字
    //添加,索引为1插元素
    arr.splice(1,0,20);
    console.log(arr);
    //替换
    arr.splice(1,1,30)
    console.log(arr);

    //删除
    arr.splice(2,1)
    console.log(arr);


http://www.niftyadmin.cn/n/359376.html

相关文章

vs中计算代码行数

在vs中依次点击以下几个菜单按钮&#xff1a;”编辑“&#xff0c;”查找和替换“&#xff0c;”在文件中查找“&#xff0c;然后输入如下表达式&#xff0c; b*[^:b#/].*$并点击”使用正则表达式“复选框后&#xff0c;然后再”查找范围“选项卡中选择解决方案或者工程或者本…

drf-----认证组件

认证组件 认证组件使用步骤&#xff08;固定用法&#xff09; 1 写一个类&#xff0c;继承BaseAuthentication 2 在类中写&#xff1a;authenticate 3 在方法中&#xff0c;完成登录认证&#xff0c;如果 不是登录的&#xff0c;抛异常 4 如果是登录的&#xff0c…

Java的4种内部类的使用方式及适用场景

Java中有四种形式的内部类&#xff0c;在开发的过程中需要理清楚何时使用合适的内部类&#xff0c;内部类用好了可以提高编码效率、更好的实现封装、甚至可以巧妙实现多继承。当然&#xff0c;某些内部类用多了会削弱面向对象的设计思想&#xff0c;所以内部类不可滥用&#xf…

由于过多的连接错误而被 MySQL服务器 阻止

Caused by: com.mysql.cj.exceptions.CJException: null, message from server: "Host 10.105.***.** is blocked because of many connection errors; unblock with mysqladmin flush-hosts" 这个错误可能表示当您尝试使用 IP 地址为 "10.105.***.**" 的…

YOLOv5【训练train.py逐行源码及参数调参解析】超详细解读!!!建议收藏✨✨!

之前的文章介绍了YOLOv5的网络结构&#x1f680;与目录结构源码&#x1f680;以及detect.py&#x1f680;的详细解读&#xff0c;今天带来的是YOLOv5的 train.py 代码参数逐行解读以及注释&#xff0c;废话不多说&#xff0c;让我们一起学习YOLOv5的 train.py 源码吧&#xff0…

低代码平台名声臭,用起来却真香——90%重复工作给你完成喽

一、前言 开发过程中&#xff0c;只是觉得前端后端合起来&#xff0c;有很多冗余信息&#xff0c;被代码一遍遍重复表达&#xff0c;是一件很枯燥、无聊的事情。 这些枯燥的重复工作&#xff0c;完全可以由机器来做&#xff0c;以便解放出我们的时间&#xff0c;来做更有价值的…

Revit建模|怎么创建轴网标高?

大家好&#xff0c;这里是建模助手&#xff0c;今天给大家讲一讲怎么创建轴网标高。 标高用来定义楼层层高以及生成平面视图&#xff0c;轴网用于为构件定位&#xff0c;在Revit中轴网确定了一个不可见的工作平面&#xff0c;轴网编号以及标高符号样式均可定制修改。目前&…

电力应急指挥需要哪些终端设备?

在电力应急现场&#xff0c;我们可能会面临很多复杂的情况&#xff0c;当发生电力险情时&#xff0c;现场可能会面临断电、断网、无路等问题。此时应急指挥中心很难第一时间掌控现场情况&#xff0c;指挥中心无法快速做出反应&#xff0c;无法对现场情况做出高效的应急处置决定…