JavaScript基础学习(2) | 字节青训营笔记

117 阅读9分钟

👀 这是我参与「第四届青训营 」笔记创作活动的的第5天!


这是一篇非常适合小白一起学习的文章,都是非常基础的知识。  😀😁😀😁😀😁


🍻1、JavaScript运算符

[@5V)GZ]0U6U)M9_NOZVUD6D.gif

运算符也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。

JavaScript中常见的运算符有:

  • 👀算数运算符

  • 👀递增和递减运算符

  • 👀比较运算符

  • 👀逻辑运算符

  • 👀赋值运算符

🍻1.1、JavaScript算数运算符

概念: 算术运算符对数值(文字或变量)执行算术运算。

运算符描述实例
+10+20=30
-10-20=-10
*10*20=200
/10/20=0.5
%取余数(取模)返回除法得余数9%2=1

注意:浮点数相加会有精度问题。我们不能用浮点数来进行比较 是否相等(js中浮点数是由64位固定长度表示的,所以数字存入内存中时有可能出现精度缺失的情况: 如 0.1 转化为二进制是一个无限循环数0.0001100110011001100......(1100循环),由于只能存入64位,就造成了精度缺失。 )

示例:

console.log(0.1+0.2)
console.log(0.07*100)
var num=0.1+0.2
console.log(num==0.3)

image.png

🍻1.2、JavaScript中的表达式

  • JS中的表达式是由数字,运算符,变量等求的数值的有意义的排列组合

🍻1.3、JavaScript中的返回值

  • JS中的返回值是指表达式最终都会有一个结果,这个结果最终会返回给使用者,这种形式叫返回值.

🍻1.4、JavaScript递增和递减运算符

概念: 递增递减就是反复的给数字进行添加1或者减去1。

运算符说明案例结果
++递增加1a=0;a++;1
递减减1a=0;a–;-1

前置运算和后置运算

var num1=10;
var num2=10;
console.log(num1++); //后置自加,先使用值,再完成自加 结果10
console.log(++num2); //前置自加,先完成自加,再使用值 结果11

注意:递增和递减必须配合变量使用。


👀前置递增和后置递增小结:

image.png


🍻1.5、JavaScript比较运算符

概念: 比较运算符主要是针对于两个数据进行比较时所使用的运算符,比较的结果返回一个布尔值(true/false)作为比较运算的结果

运算符名称说明案例结果
<小于号1<2true
大于号1>2false
>=大于等于号(大于或者等于)2>=2true
<=小于等于号(小于或者等于)3<=2false
==比较数据是否相等(会转型)37==37true
!=不等号37!=37flase
===全等 要求值和数据类型都要一致37==='37'flase
!==数据值或者类型有一方不相同结果都为true37!=='37'true

注意: =,==,===三者之间的区别

  • 👀 =:赋值符号,将等号右边的值赋给左边
  • 👀 ==:比较判断符号,比较左右两边的数据是否相等(注意此时有隐式转换)
  • 👀===:判断等号两边的数据是否相等并且数据类型是否也相同

🍻1.5、JavaScript逻辑运算符

概念: 逻辑运算符主要用来进行对布尔值运算的运算符,其最终结果依然是布尔值


image.png

短路运算(逻辑中断)

所谓逻辑中断就是多个表达式进行逻辑运算,前面的表达式很有可能会影响到后面表达式的一个运行结果。

1、逻辑与

  • 👀语法:表达式1&&表达式2
  • 👀如果第一个表达式的值为真,则返回表达式2
  • 👀如果第一个表达式的值为假,则返回表达式1

1、逻辑或

  • 👀语法:表达式1||表达式2
  • 👀如果第一个表达式的值为真,则返回表达式1
  • 👀如果第一个表达式的值为假,则返回表达式2

实例

var num1=10;
var num2=10;
console.log(num1++>10&&++num2>10);
// 结果是false。
//逻辑与运算,只要前面的运算符为false
//则后面的直接不需要判断,结果肯定为false
//所以后面的就不需要执行了.所以为10
console.log(num1)  //11
console.log(num2)  //10

🍻1.6、JavaScript赋值运算符

概念: 赋值运算符是用来将计算好的数据再次赋值给变量的运算符。

运算符说明实例
=直接赋值var a=10;
+= ,-=(加/减)运算之后赋值var a=10; a+=5; a结果是15
*=,/=,%=(乘、除、取余)运算之后赋值var a=5; a%=2; a结果是1

三元(三目)运算符

三元运算符语法

表达式?表达式1:表达式2;

三元运算符执行思路:

如果表达式的结果为true的话,那么返回就返回表达式1的值,如果表达式的结果是false的话,那么就返回表达式2的值。

🍻1.7、JavaScript运算符优先级


image.png

  • 👀一元运算符里面的逻辑非优先级很高
  • 👀逻辑与比逻辑或优先级高

🍻2、JavaScript流程控制

🍻2.1、流程控制

在一个程序执行的过程中,各条代码的执行顺序对程序的结果是有直接影响的。很多时候我们要通过控制代码的执行顺序来实现我们要完成的功能。

简单理解: 流程控制就是来控制我们的代码按照什么结构顺序来执行 流程控制主要有三种结构,分别是顺序结构、分支结构和循环结构,这三种结构代表三种代码执行的顺序。

image.png

🍻2.2、顺序流程控制

顺序结构是程序中最简单、最基本的流程控制,它没有特定的语法结构,程序会按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

🍻2.3、 分支流程控制

由上到下执行代码的过程中,根据不同的条件,执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果。

JS 语言提供了两种分支结构语句,if 语句和switch 语句。

🍻2.3.1、if语句

语法结构

image.png

执行流程

image.png

🍻2.3.2、if else语句(双分支语句)

语法结构

image.png

执行流程

image.png

🍻2.3.3、if else if 语句(多分支语句)

语法结构

image.png

执行流程

image.png

🍻2.3.4、switch 语句

语法:

switch(表达式) {
     case n:
        代码块
        break;
     case n:
        代码块
        break;
     default:
        默认代码块
} 

代码解释:

  • 👀计算一次 switch 表达式
  • 👀把表达式的值与每个 case 的值进行对比
  • 👀如果存在匹配,则执行关联代码

🍻2.3.5、switch 语句和 if else if 语句的区别

  • 👀一般情况下,它们两个语句可以相互替换

  • 👀 switch…case 语句通常处理 case为比较确定值的情况, 而 if…else…语句更加灵活,常用于范围判断(大于、等于某个范围)

  • 👀switch 语句进行条件判断后直接执行到程序的条件语句,效率更高。而if…else 语句有几种条件,就得判断多少次。

  • 👀 当分支比较少时,if… else语句的执行效率比 switch语句高。

  • 👀 当分支比较多时,switch语句的执行效率比较高,而且结构更清晰。

🍻2.4、循环流程控制

循环目的

在实际问题中,有许多具有规律性的重复操作,因此在程序中要完成这类操作就需要重复执行某些语句。

JavaScript中的循环

🍻2.4.1、for循环

在程序中,一组被重复执行的语句被称为循环体,而能否继续重复执行,则取决于循环的终止条件。

循环语句是指由循环体和循环的终止条件造成的句子。

for循环主要用于把某些代码循环若干次,通常跟计数有关系。

//for循环的语法结构如下:
for(初始化变量;条件表达式;操作表达式){
  //循环体
}
//初始化变量:其实就是用var声明一个普通的变量,并且这个变量通常是作为计数器使用。
//条件表达式:用来决定每一次循环是否继续执行,也就是循环的终止条件。
//操作表达式:每次循环最后执行的代码,经常用于更新计数器(递增或递减)。
  • 👀for循环可以重复执行相同的代码。
  • 👀因为有计数器的存在,使用for循环可以重复执行不同代码。

九九乘法表的案例:

代码如下:

var str=''
for(var i=1;i<=9;i++)
{
    for(var j=1;j<=i;j++)
    {
        str+=j+"×"+i+'='+i*j+'  '
    }
    str+='\n';
}
console.log(str);

结果如下:

image.png

循环嵌套

循环嵌套是指在一个循环语句中再定义一个循环语句的语法结构。像在一个for循环语句中, 再嵌套一个for循环,我们就称之为双重for循环。

for(var i = 1; i <= 3; i++){
  console.log('这是第'+i+'次外层循环');
  for(var j = 1; j <= 3; j++){
    console.log('这是第'+i+'次里层循环');
  }
}

image.png

🍻2.4.2、while 循环

while 语句可以在条件表达式为真的前提下,循环执行指定的一段代码,直到表达式不为真时结束循环。

while语句的语法结构如下:

image.png

执行思路

先执行条件表达式,如果结果为 true,则执行循环体代码;如果为 false,则退出循环,执行后面代码 执行循环体代码 循环体代码执行完毕后,程序会继续判断执行条件表达式,如条件仍为true,则会继续执行循环体,直到循环条件为 false 时,整个循环过程才会结束。

注意: 使用 while 循环时一定要注意,它必须要有退出条件,否则会成为死循环 while 循环和 for 循环的不同之处在于 while 循环可以做较为复杂的条件判断,比如判断用户名和密码。

代码如下:

var names=prompt('输入用户名');
var nums=prompt('输入密码');
while(names!='admin' && nums!='123456')
{
    names=prompt('输入用户名');
    nums=prompt('输入密码');
}
alert('登陆成功');

结果如下:

image.png

image.png

image.png

🍻2.4.3、do while 循环

do…while语句其实是while语句的一个变体。该循环会先执行一次代码块,然后对条件表达式进行判断,如果条件为真,就会重复执行循环体,否则退出循环。(do while循环语句至少执行一次循环体代码)

//do while语句的语法结构如下:
do{
  //循环体代码
}while(条件表达式);

🍻2.4.4、循环总结

  • 👀三种循环在很多情况下都是可以相互替代使用的。

  • 👀对于计数,三者的使用基本相同,但是更常用的还是for循环。

  • 👀对于更复杂的判断条件,可以使用while和do while语句。

  • 👀while语句是先判断后执行;而do while是先执行一次后判断执行

🍻3、continue和break

🍻3.1、continue关键字

continue关键字用于立即跳出本次循环,继续下一次循环(本次循环体中continue之后的代码就会少执行一次)。

代码如下:

var sum = 0;
for(var i = 1; i <= 100; i++){
  if(i % 7 == 0){
    continue;
  }
  sum+=i;
}
console.log(sum);

结果如下:

image.png

🍻3.2、break关键字

break关键字用于立即跳出整个循环。

代码如下:

for(var i = 1; i <=5; i++){
  if(i == 3){
    break;
  }
  console.log('这是第'+i+'个数!');
}

结果如下:

image.png

🍻4、案例

**简易ATM:**要求如下

image.png

代码如下:


var flag=1;
var money=100;
while(flag)
{
var n=prompt('请输入您要的操作:'+'\n'+'1、存钱'+'\n'+'2、取钱'+'\n'+'3、显示余额'+'\n'+'4、退出'+'\n');
switch(parseInt(n))
{
    case 1: var money1=prompt('输入钱数:');  money+=parseInt(money1); alert(money);break; 
    case 2: var money2=prompt('输入取钱数:');  money-=money2; alert(money);break;
    case 3: alert(money);break;
    case 4: alert('退出'); flag=0;break;
    default: alert('输入错误,请重新输入');
}
}

运行结果如下:

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

🍻5、总结

🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈

今日的JavaScript基础知识学习就到此为止了,虽然是这两天的内容很简单,但是还是从中发现了很多自己的知识盲区,我也希望大家可以重视基础,一起进步,这篇文章是非常适合小白学习的,我们一起努力学习,成为更好的自己,每天进步一点点。!!!

🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈