08.JS基础之变量、数据类型、操作符、表达式和语句、流程控制

变量:变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据。

使用变量的原因:使用变量可以方便的获取或者修改内存中的数据

使用变量:var声明变量 var age;

变量的赋值:var age;age=18;

同时声明多个变量:var age,name,sex;age=10;name='zs';

同时声明多个变量并赋值:var age=10,name='zs';

变量在内存中的存储:var age=18;

变量命名规则和规范

  • 规则 - 必须遵守的,不遵守会报错

    • 由字母、数字、下划线、$符号组成,不能以数字开头

    • 不能是关键字和保留字,例如:for、while。

    • 区分大小写

  • 规范 - 建议遵守的,不遵守不会报错

    • 变量名必须有意义
    • 遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。例如:userName、userPassword

案例1、交换两个变量的值

<script>
        var a=10,b=20;
        var temp;
        temp=a;
        a=b;
        b=temp;
        console.log(a,b);
    </script>

案例2、不使用临时变量,交换两个数值变量的值

 <!--第二种方式交换:一般适用于数字的交换-->
    <script>
        var num1=10;
        var num2=20;
        //把num1变量中的值和num2变量中num2的值,取出来相加,重新赋值给num1这个变量。
        num1=num1+num2;//30
        //把num1变量的值和num2变量的值取出来,相减的结果重新赋值给num2
        num2=num1-num2;//10
        //把num1变量的值和num2变量的值取出来,相减的结果给num1
        num1=num1-num2;//20
        console.log(num1,num2);
    </script>

 

数据类型

一、简单的数据类型:Number、String、Boolean、Undefined、Null

1、Number类型

数值字面量:数值的固定值的表示法 110 1024 60.5

进制:十进制 var num=9; 十六进制 var num=0xA

浮点数:

点数 var n = 5e-324; // 科学计数法 5乘以10的-324次方 浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数 var result = 0.1 + 0.2; // 结果不是 0.3,而是:0.30000000000000004 console.log(0.07 * 100); 不要判断两个浮点数是否相等。

数值范围:最小值:Number.MIN_VALUE,这个值为: 5e-324 最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308 无穷大:Infinity 无穷小:-Infinity

数值判断

NaN:not a number

NaN与任何值都不相等,包括他本身

isNaN:is not a number

2、String类型

‘abc’ "abc"

字符串字面量---‘小明’,"小红"

思考题:打印字符串----小猴子很喜欢“吃‘相交’”

<script>
        console.log("小猴子很喜欢\"吃\'相交\'\"");
    </script>

转义符

字符串长度---length属性用来获取字符串的长度(变量名.length);

字符串拼接

两边只要有一个是字符串,那么+就是字符串拼接功能

两边如果都是数字,那么就是算数功能。

3、Boolean类型

Boolean字面量:true和false,区分大小写

计算机内部存储:true为1,false为0

4、Undefined和NULL

undefined表示一个声明了没有赋值的变量,变量只声明的时候值默认是undefined

null表示一个空,变量的值如果想是null,必须手动设置

二、复杂数据类型

Object

获取变量的类型:用typeof

例:var age=19;console.log(typeof age);//'number'

字面量--在源代码中一个固定值的表示法

数值字面量:8,9,10

字符串字面量:‘程序员’,大前端“

布尔字面量:true,false

数据类型转换用toString()

var num=5;
console.log(num.toString());

String()----String()函数存在的意义是:有些值没有toString(),这个时候可以使用String().比如undefined和null

拼接字符串方式

num+"",当+两边一个操作符是字符串类型,一个操作符是其他类型的时候,会先把其他类型转换成字符串再进行字符串拼接,返回字符串。

转换成数值类型

Number()----可以把任意值转换成数值,如果要转换的字符串,如果要转换的字符串中有一个不是数值的字符,返回NaN。

ParseInt()-----函数可解析一个字符串,并返回一个整数。

ParseFloat()-----函数可解析一个字符串,并返回一个小数。

+,-0等运算

var str='500';

console.log(+str);//取正

console.log(-str);//取负

转换成布尔类型

Boolean()

0 空字符串 null undefined NaN会转换成false 其他转换成true

三、操作符

运算符operator

1、算数运算符 + - * / %

2、一元运算符:只有一个操作数的运算符

++ 自身加1

--自身减1

3、二元运算符:两个操作数的运算符

5+6

4、逻辑运算符(布尔运算符)

&& 与 两个操作数同时为true,结果为true,否则都是false
|| 或 两个操作数有一个为true,结果为true,否则为false
!  非  取反

5、关系运算符(比较运算符)

< > >= <= == != === !==

==与===区别:==只进行值得比较,===类型和值同时相等才相等

var result='55'==55//true

var result='55'===55//false 值相等,类型不相等

var result=55==55;//true

6、赋值运算符

= += -= /= %=

运算符的优先级

1、()优先级最高

2、一元运算符 ++ == !

3、算数运算符 先* / % 后+ -

4、关系运算符 > >= < <=

5、相等运算符 == != === !==

6、逻辑运算符&& !!

7、赋值运算符

练习1: 4 >= 6 || '人' != '阿凡达' && !(12 * 2 == 144) && true // 练习2: var num = 10; 5 == num / 2 && (2 + 2 * num).toString() === '22'

表达式和语句

表达式:一个表达式可以产生一个值,有可能是运算、函数调用、有可能是字面量。表达式可以放在任何需要值得地方。

语句:语句可以理解为一个行为,循环语句和判断语句就是典型的语句。一个程序由很多的语句组成,一般情况下,分割一个个的语句

流程控制

程序的三种基本结构

1、顺序结构:从上到下执行代码;(程序默认就是这么执行代码的)

2、分支结构:根据不同的情况,执行相应代码

3、循环结构:重复做一件事情

分支结构

if语句

语法结构:

if(/*条件表达式*/){
    //执行语句
}
if(/*条件表达式*/){
    //成立执行语句
}else if(/*条件2*/){
    //成立执行语句
}else if(/*条件3*/){
//成立执行语句
}else{
//最后默认执行语句
}

案例1: 求两个数的最大数

<script>
        var num1=10;
        var num2=5;
        if(num1>num2){
            console.log(num1);
        }else{
            console.log(num2);
        }
    </script>

案例2:判断一个数是偶数还是奇数。

  <!--判断一个数是偶数还是奇数-->
    <script>
        var num=2;
        if(num%2==0){
            console.log(num+"是偶数");
        }else{
            console.log(num+"是奇数");
        }
    </script>

案例3:分数转换 把百分制转换成ABCDE <60 E 60-70 D 70-80 C 80-90 B 90 - 100 A。

<!--分数转换 把百分制转换成ABCDE <60 E 60-70 D 70-80 C 80-90 B 90 - 100 A。-->
    <script>
        var score=Number(prompt("请输入您的成绩:"));//prompt弹框用户输入数据  Number把任意值转换为数值
        if(!isNaN(score)) {//如果为true则说明并不是数字
            if (score >= 90 && grade <= 100) {
                console.log("A等");
            } else if (score >= 80) {
                console.log("B等");
            } else if (score >= 70) {
                console.log("C等");
            } else if (score >= 60) {
                console.log("D等");
            } else {
                console.log("E等");
            }
        }else{
            console.log("您输入有误");
        }
    </script>

作业1:判断一个年份是闰年还是平年 闰年:能被4整除,但不能被100整除的年份 或者 能被400整除的年份

 <!--判断一个年份是闰年还是平年 闰年:能被4整除,但不能被100整除的年份 或者 能被400整除的年份-->
    <script>
        var year=prompt("请输入年份:");
        if(year%4==0&&year%100!=0){
            console.log(year+"是闰年");
        }else{
            console.log(year+"是平年");
        }
    </script>

作业2:判断一个人的年龄是否满18岁(是否成年)

<!--判断一个人的年龄是否满18岁(是否成年)-->
    <script>
        var age=prompt("请输入年龄:");
        if(age>=18){
            console.log("成年了");
        }else{
            console.log("还没成年");
        }
    </script>

三元运算符

表达式1 ? 表达式2:表达式3 是对if...else语句的一种简化写法

案例4:是否年满18岁

 <!--是否年满18岁 从两个数中找最大值-->
    <script>
        var age=prompt("请输入年龄");
        age>=18?console.log("已成年"):console.log("未成年");
    </script>

案例5:从两个数中找最大值

<!--从两个数中找最大值-->
    <script>
        var num1=10,num2=20;
        num1>num2?console.log(num1):console.log(num2);
    </script>

switch语句

语法格式:

switch(expression){
    case 常量1:语句;
    break;
    case 常量2:语句;
    break;
    case 常量3:语句;
    break;
    ...
    case 常量n:语句;
    default:语句;
    break;
}

break可以圣罗,如果省略,代码会继续执行下一个case switch语句在比较值时使用的是全栈操作符,因此不会发生类型转换(例如:字符串‘10’不等于数值10)

案例6:显示星期几 

<!--显示星期几-->
    <script>
        var num=parseInt(prompt("请输入一个星期的数字"));
        switch(num){
            case 1:console.log("星期一");
                break;
            case 2:console.log("星期二");
                break;
            case 3:console.log("星期三");
                break;
            case 4:console.log("星期四");
                break;
            case 5:console.log("星期五");
                break;
            case 6:console.log("星期六");
                break;
            case 7:console.log("星期天");
                break;
            default:
                console.log("输入错误");
        }
    </script>

案例7:素质教育(把分数变成ABCDE)千万不要写100个case哟。

 

布尔类型的隐式转换:流程控制会把后面的值隐式转换成布尔类型。

循环结构---在JavaScript中,循环语句有三种,while、do...while、for循环。

while语句

基本语法:while(循环条件){ //循环体}

当循环条件为true时,执行循环体;当循环条件为false时,结束循环;

案例8:打印100以内 7的倍数;

<!--打印100以内 7的倍数;-->
    <script>
            var i=1;
            while (i<=100) {
                if(i%7==0){
                    console.log(i);
                }
                i++;
            }
    </script>

案例9:打印100以内所有偶数;

 <!--打印100以内所有偶数;-->
    <script>
        var i=1;
        while(i<=100){
            if(i%2==0){
                console.log(i);
            }
            i++;
        }
    </script>

案例10:打印100以内所有偶数的和 

 <!--打印100以内所有偶数的和-->
    <script>
        var i=1;
        var sum=0;
        while(i<=100){
            if(i%2==0){
                sum+=i;
            }
            i++;
        }
        console.log(sum);
    </script>

do...while语句

do...while循环和while循环非常像,二者经常可以相互替代,但是do...while的特点是不管条件成立不成立,都会执行一次。

基础语法:

do{
    //循环体;
}
while(循环条件);

案例11:求100以内所有3的倍数的和 使用do-while循环;

<!--求100以内所有3的倍数的和 使用do-while循环;-->
    <script>
        var i=1;
        var sum=0;
        do{
        if(i%3==0){
        sum+=i;
        }
        i++;
        }
      while(i<=100)
        console.log(sum);
    </script>

 

for语句

while和do...while一般用来解决无法确认次数的循环。for循环一般在循环次数确定时比较方便。

for循环语法:

for(初始化表达式1;判断表达式2;自增表达式3){
//循环体4;
}

案例12:

 <!--打印1-100之间所有数;-->
    <script>
        for(var i=1;i<=100;i++){
            console.log(i);
        }
    </script>

案例13:求1-100之间所有数的和;

<!--求1-100之间所有数的和;-->
    <script>
        var sum=0;
        for(var i=1;i<=100;i++){
            sum+=i;
        }
        console.log(sum);
    </script>

案例14:求1-100之间所有数的平均值;

<!--求1-100之间所有数的平均值;-->
    <script>
        var sum=0;
        for(var i=1;i<=100;i++){
            sum+=i;
        }
        console.log(sum/100);
    </script>

continue和break

break:立即跳出整个循环,即循环结束,开始循环后面的内容(直接跳到大括号)

continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)

案例15:求1-100之间不能被7整除的整数的和(用continue)

<!--求1-100之间不能被7整除的整数的和(用continue)-->
    <script>
    var sum=0;
    var i=1;
    while(i<=100){
    //判断能不能被7整除
    if(i%7==0){
    //如果能被7整除,跳过这个数字
    i++;
    continue;
    }
    sum+=i;
    i++;
    }
    console.log(sum);
    </script>

 

案例16:求200-300之间第一个能被7整数的数(break)

 <!--求200-300之间第一个能被7整数的数(break)-->
    <script>
        for(var i=100;i<=200;i++){
            if(i%7==0){
                console.log(i);
                break;
            }
        }
    </script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值