0
点赞
收藏
分享

微信扫一扫

JavaScript的语法

目录

一、基本的语法规则

二、注释符号

三、输入输出语句:实现网页和用户的交互

1.输出语句

2.输入语句

四、变量

1.声明变量

2.先声明,后赋值

3.命名规则

五、变量的数据类型

1.基本数据类型

2.复合数据类型:Object(对象)

3.数字型常用的数制

4.数字型的取值范围(最大值和最小值)

5.特殊的数字型

6.字符串类型

7.数据类型的检测:typeof

8.将其他类型的数据转换成字符串

9.将字符串转换为数字型的方式

10.转换为Boolean

六、算术运算符:+、-、*、/、%

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

1.关系运算的运算结果:true/false

2.运算符:> >= < <= == !=

八、逻辑运算符:运算结果是逻辑值(true/false)

1.逻辑与(&&)

2.逻辑或(||)

3.逻辑非(!)

九、赋值运算符(=)

1.格式:变量 = 表达式

2.要求

(1)'='的左边只能是变量,不能是常量或表达式

(2)优先级是最低的

3.复合赋值运算符:+=、-=、*=、/=等

十、位运算符:对数据的二进制位进行运算

1.按位与(&)

2.按位或(|)

3.按位异或(^)

4.按位左移(<<)

5.按位右移(>>)

十一、条件运算符(?:)

十二、流程控制

1.顺序结构:按照代码的先后顺序依次执行

2.分支结构:又称为选择结构,是根据条件决定选择执行某个分支的代码

3.循环结构:又称重复结构(迭代),是根据条件决定是否重复执行某段代码

十三、分支结构

1.if语句:条件语句

2.if...else语句

  示例:输入一个年份,判断它是闰年还是平年

 3.多分支语句

  示例:输入成绩,判断成绩的等级

4.if结构的嵌套

(1)在if子句中嵌套

(2)在else子句中嵌套

   示例1:输入3个整数,输出最大值和最小值

   示例2:输入3个整数,按从大到小的顺序输出    

5.多分支选择结构

   示例1:用switch--case结构判断一个数是奇数还是偶数

   示例2:输入成绩判断成绩的等级(用switch--case实现)


一、基本的语法规则

1.严格区分大小写

2.对空格、换行、缩进不敏感,一条语句可以多行写

3.一条语句结束后可以是用分号,也可以不用分号

二、注释符号

1.单行注释符:以 '//'开始,到所在行结束.快捷键:ctrl+/

2.多行注释符:以'/*'开始,以'*/'结束,中间可以包含多行.快捷键:shift+alt+a

三、输入输出语句:实现网页和用户的交互

1.输出语句

alert('字符串')消息框,'字符串'为消息框上显示的内容
console.log(内容)输出到浏览器的console中
console.info(内容)输出到浏览器的console中
console.error(内容)输出错误信息到console中

2.输入语句

prompt('字符串'):浏览器弹出输入框,用户可以通过输入框输入内容

四、变量

在程序运行过程中值会发生改变的量。本质是内存中的一块儿存储区域

1.声明变量

var 变量名 = 值;

2.先声明,后赋值

var 变量;

变量 = 值

3.命名规则

  • a.由字母、数字、下划线和美元符号($)组成
  • b.不能以数字开头
  • c.严格区分大小写
  • d.不能是关键字、保留字
  • e.建议做到 '见名知意'
  • f.建议使用驼峰命名法:首字母小写,后面单词的首字母大写  

五、变量的数据类型

强类型语言C/C++、java 在声明变量时必须指定变量的数据类型
弱类型语言javaScript、Python 在声明变量时不用指定变量的数据类型。变量的数据类型在程序运行过程中自动确定

1.基本数据类型

Boolean布尔型(逻辑型)
String字符串(用单引号或双引号括起来的字符序列)
Number数字型(整数和小数)
Null空值型
Undefined未定义型

2.复合数据类型:Object(对象)

3.数字型常用的数制

  • a.二进制:由0和1组成的数字序列
  • b.八进制:由0开头,0~7组成的数字序列,逢8进1
  • c.十六进制:是0x开头,由0~9数字和a~f字母组成
  • d.十进制

4.数字型的取值范围(最大值和最小值)

最大值Number.MAX_VALUE1.7976931348623157e+308=1.79...*10^308
最小值Number.MIN_VALUE5e-324=5*10^-324

5.特殊的数字型

NaNNot a Number
isNaN(变量)判断变量是否是非数字类型。若是非数字返回true,若是数字返回false

6.字符串类型

用单引号或双引号括起来的字符序列。在单引号字符串中可以嵌套双引号;在双引号字符串中可以嵌套单引号。但是单引号和双引号不能交叉

a.转义字符:以'\'开头,后跟一个字符,代表某个特殊含义

\n表示换行  
\tTab符号
\b退格符
\x十六进制数  \x61
\\表示一个反斜杠

b.字符串的长度:字符串变量默认有length属性,代表字符串的长度(有效字符的个数)

c.访问字符串中的某个字符:字符串变量名[index],index的取值从0开始到字符串的长度减1

d.字符串的拼接:通过'+'实现.不同类型的数据和字符串拼接时,会将其他类型的数据先转换成字符串.  

7.数据类型的检测:typeof

8.将其他类型的数据转换成字符串

  • a.通过连接符'+'
  • b.通过toString()方法
  • c.通过String()类进行转换

9.将字符串转换为数字型的方式

  • a.通过parseInt()将字符转换成整数
  • b.通过parseFloat()将字符串转换为浮点型数据(小数)
  • c.通过Number()将字符串转为数字型
  • d.通过算术运算符进行隐式转换

10.转换为Boolean

把空值、否定值转换为false,如空字符串、0、NaN、null和undefined;其余的转换为true

六、算术运算符:+、-、*、/、%

  • (1)优先级:先乘除后加减,有括号的先算括号里的
  • (2)模运算(%):运算结果的符号取决于%左边的数据,与%右边的数据无关
  • (3)+、-既可以作为双目运算符,也可以作为单目运算符(表示正、负号)
  • (4)自增(++):是运算对象自己给自己加1
  • (5)自减(--):是运算对象自己给自己减1
var a = 5

a++   后缀表达式    a--   后缀表达式

++a   前缀表达式    --a   前缀表达式

PS:作为独立语句前缀和后缀没有区别;但是若在混合运算的表达式中是有区别的

var a = 5,b = 6,c

    c = a++*b   //先使用a的值,然后a+1

var a = 5

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

1.关系运算的运算结果:true/false

45>25  --> true

45<25  --> false

2.运算符:> >= < <= == !=

==只比较值,不比较类型
===全等。先比较类型,然后再比较值
!=只比较值,不比较类型
!==全不等

八、逻辑运算符:运算结果是逻辑值(true/false)

1.逻辑与(&&)

表达式1 && 表达式2  -->只有两个表达式的值都为true时,结果为true

注意&&运算的短路现象:当'表达式1'为false时,不运算'表达式2'

2.逻辑或(||)

表达式1 || 表达式2  -->两个表达式中只要有一个为true,结果就为true

注意||运算的短路现象:当'表达式1'为true时,不运算'表达式2'

3.逻辑非(!)

取反,true反是false,false的反是true.是单目运算符,必须放在运算对象的左边!表达式

优先级顺序:! &&  ||

九、赋值运算符(=)

1.格式:变量 = 表达式

var a= 15

2.要求

(1)'='的左边只能是变量,不能是常量或表达式

var a,b

a+b=15

10 = a

(2)优先级是最低的

3.复合赋值运算符:+=、-=、*=、/=等

var a= 5

a+=5 ==> a=a+5

a*=3+4  ==> a= a*(3+4)

十、位运算符:对数据的二进制位进行运算

1.按位与(&)

a&b 相对应的二进制位都为1时结果为1,否则结果为0

var a=10,b=15

a&b = 10

2.按位或(|)

a|b 相对应的二进制位有一位为1时结果为1,都为0时结果为0

var a=10,b=15

a|b = 15

3.按位异或(^)

 a^b  相对应的二进制位相同为0,不同为1

var a=10,b=15

a^b = 5

4.按位左移(<<)

运算对象 << 位移位数,位移时高位(左边)移出的位舍弃,低位(右边)补0,对于正整数和无符号数,左移n位等于让运算对象乘以2的n次方

var a=2,b

b= a<<1

原码  反码  补码

5.按位右移(>>)

运算对象 << 位移位数, 位移时低位(右边)移出的位舍弃,高位(左边)补0

对于正整数和无符号数,右移n位等于让运算对象除以2的n次方

十一、条件运算符(?:)

是一个三目运算符(参加运算的对象有三个)

条件表达式:  表达式1?表达式2:表达式3

先运算'表达式1',若结果为true则选择'表达式2'进行运算,并把'表达式2'的值作为整个

条件表达式的值;若'表达式1'的结果为false,则选择'表达式3'进行运算,并把'表达式3'的值

作为整个条件表达式的值

十二、流程控制

通过控制代码的执行顺序来实现某种功能

1.顺序结构:按照代码的先后顺序依次执行

2.分支结构:又称为选择结构,是根据条件决定选择执行某个分支的代码

3.循环结构:又称重复结构(迭代),是根据条件决定是否重复执行某段代码

十三、分支结构

1.if语句:条件语句

if(条件表达式){

    代码段

}

2.if...else语句

if(条件表达式){
  
      代码段1

}else{

      代码段2

}

(1)else必须和if结合使用,不能单独使用

(2)else后不能带表达式

  示例:输入一个年份,判断它是闰年还是平年

(1)年份能被4整除,但不能被100整除

(2)年份能被400整除

<script>        
        var n = prompt('请输入一个年份')

        var year = parseInt(n)
        
        var msg = ''

        if((year%4===0 && year%100!==0) || (year%400 === 0)){
            msg = year + '是闰年'
        }else{
            msg = year + '是平年'
        }

        alert(msg)
</script> 

 3.多分支语句

if(表达式1){

  代码段1

}else if(表达式2){

  代码段2

}else if(表达式3){

  代码段3

}

...

else{

  代码段n

}

示例:输入成绩,判断成绩的等级

>=90  为 A

>=80  为 B

>=70  为 C

>=60  为 D

<60 为 E

<script>
        var n= prompt('判断成绩等级')

        var s = parseFloat(n)

        if(s>=90){
            msg = 'A'
        }else if(s>=80){
            msg = 'B'
        }else if(s>=70){
            msg = 'C'
        }else if(s>=70){
            msg = 'C'
        }else if(s>=60){
            msg = 'D'
        }else if(s<70){
            msg = 'E'
        }
        alert(msg) 
</script>

4.if结构的嵌套

(1)在if子句中嵌套

if(表达式1){

     if(表达式2){

     代码段1

     }

}else{

     代码段2

}

(2)在else子句中嵌套

if(表达式1){

     代码段1

}else {

     if(表达式2){

        代码段2

     }else{

        代码段3

    }

}

注意:

  • a、在没有大括号({})时,if或else的控制范围(作用域)为其后的第一条语句
  • b、在没有大括号({})时,else总是和离它最近的if匹配

练习:

   示例1:输入3个整数,输出最大值和最小值

<script>
        var max,min

        if(a<=b){
            max = b
            min = a
        }else{
            max = a
            min = b
        }

        if(max<=c){
            max = c
        }else{
            min = c
        } */

        /* max = a>=b?a:b
        max = max>=c?max:c

        min = a>=b?b:a
        min = min>=c?c:

        console.log('max=',max)
        console.log('min=',min)
</script>

   示例2:输入3个整数,按从大到小的顺序输出    

<script>
        var x,y,z

        if(a>=b){
            x = a
            y = b
        }else{
            x = b
            y = a
        }

        if(c>=x){
            z = y
            y = x
            x = c
        }else{
            if(c>=y){
                z = y
                y = c
            }else{
                z = c
            }
        }
        console.log('大小顺序为',x,y,z)
</script>

5.多分支选择结构

switch(表达式){

   case 常量1:代码段1;break;

   case 常量2:代码段2;break;

   case 常量3:代码段3;break;

   ...

   case 常量n:代码段n;break;

   default: 代码段n+1;

}

(1)case后面必须是常量,该常量的类型必须和'表达式'的运算结果的类型一致

(2)case后面的常量不能重复

(3)default表示是所有case情况之外的

(4)switch--case必须和break结合使用,否则没有分支选择的效果

示例1:用switch--case结构判断一个数是奇数还是偶数

<script>
        var m = parseInt(prompt('请输入一个整数'))
        var str = ''

        switch(m%2){
            case 0: str = '是偶数';break;
            case 1: str = '是奇数';break;
        }

        alert(str)
</script>

示例2:输入成绩判断成绩的等级(用switch--case实现)

<script>
        var m = parseFloat(prompt('请输入一个成绩'))
        var k = parseInt(m/10)
        var msg

        switch(k){
            case 10:
            case 9: msg = 'A';break;
            case 8: msg = 'B';break;
            case 7: msg = 'C';break;
            case 6: msg = 'D';break;
            default : msg = 'E';
        }
        alert('成绩等级是'+msg)
</script>
举报

相关推荐

0 条评论