JavaScript的语法基础(变量、数据类型、运算符、程序控制语句)!!

#JavaScript是一种web脚本编程语言,简称JS;所谓“脚本语言”,指的是它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序的“脚本”。#

一、JS概述

  1. 前言:

  • 主要用于向HTML页面中添加交互行为;不需要编译,直接由浏览器解释运行,语法和Java类似。
  • 因此,在语法学习过程中,需注意与Java对比学习。

  2. 注意:

  • JavaScript Java 是两种完全不同的语言(只是语法相似),无论在概念还是设计上。

二、HTML页面中使用JS

1.   Javascript主要的三种方式:行内式,内嵌式,外链式

1.1  行内式

①. 前言
  • 行内式:不怎么推荐使用
  • 行内式写在<body>元素里面
②. 行内式语法的运用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js脚本代码的应用方式</title>
</head>
<body>
    <!-- 行内式:不推荐使用 -->
    <input type="submit" value="登录" onclick="javascript:alert('登录成功!')">
</body>
</html>
代码运行后如下:

1.2  内嵌式

①. 前言
  • 内嵌式:js代码不多时,或者做实验时,可以用一下
  • 内嵌式运用<script>标签运行,而 <script>标签可以放置在HTML文档中任意位置;
②. 内嵌式的运用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js脚本代码的应用方式</title>
    
    <!-- 内嵌式:js代码不多时,或者做实验时,可以用一下 -->
    <script>
         document.write("测试内嵌式js的引用1") 
         document.write("测试内嵌式js的引用2")
        
    </script>
</head>
<body>
</body>
</html>
代码运行后如下:

1.3  外链式

①. 前言
  • 外链式:工程项目开发主打引用方式,可以解除耦合
  • 外链式先创建一个.js的文件,在HTML中通过<script>标签应用实现效果
②. 外链式的运用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js脚本代码的应用方式</title>
    <!-- 外链式:工程项目开发主打引用方式,可以解除耦合 -->
    <script src="./1.我的第一个js程序.js">

    </script>
</head>
<body>
</body>
</html>
代码运行后如下:

三、基本的执行顺序

1.  从上到下线性执行

  • HTML中的JS脚本通常是从上到下线性执行的。也就是说,浏览器会按照HTML文档JS脚本出现的顺序依次执行它们。

2.  阻塞行为

①. 前言
  • 当浏览器遇到<script>标签时(无论是内嵌JS还是通过src属性引入的外部JS文件),它会停止解析和渲染页面,优先下载、解析并执行该标签中的JS代码
  • 这个过程会阻塞页面其他内容的下载和渲染,直到JS代码执行完毕。
  • <script>出现阻塞行为可以使用延时语句解决这个问题

②.  解决阻塞行为的运用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js脚本代码的应用方式</title>
    <script>
         document.write("测试内嵌式js的引用1")
         document.write("测试内嵌式js的引用2")
         document.write("测试内嵌式js的引用3")
        //  延时语句,延时30分钟
         delay(30)
        
    </script>
</head>
<body>
</body>
</html>

四、Javascript的输出方式

1.  Document.write 标签

①. 前言
  • 通过 <script> 标签运用 document.write()的方式输出在现代 web 前端开发中已经不推荐使用,因为它会覆盖整个页面的内容 

②document.write()的运用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的输出方式</title>
</head>
<body>
    <!-- 在现代web前端开发中已经不推荐使用,因为它会覆盖整个页面的内容 -->
    <script>
        document.write("第一种:直接在网页页面中进行输出");
    </script>
</body>
</html>
代码运行后如下:

2.  Alert 标签

①.  前言
  • alert(  )  代码在调试时,偶尔可以用一下

②.  alert()的运用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的输出方式</title>
</head>
<body>
    <!-- 代码调试时,偶尔可以用一下 -->
    <script>
        alert("通过弹窗来输出信息")
    </script>
</body>
</html>
代码运行后如下:

3.   Console.log  标签

①.  前言
  • console.log()标签主要用于代码调试,推荐方式

②.  console.log()标签的运用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的输出方式</title>
</head>
<body>
    <!-- 主要用于代码调试,推荐方式 -->
    <script>
        console.log("通过浏览器控制台输出信息"); //日志
        console.log("通过浏览器控制台输出信息,非常方便"); //日志
    </script>
</body>
</html>
代码运行后如下:

五、JavaScript 的变量和运算符

1.  变量

①.  前言
  • 变量名可由:字母、美元符号($)、下划线(_)数字组成,但数字不能开头。

②.  注意

  • 不能用 JavaScript 的关键字,如var、int、true等作变量名称。
  • JavaScript 是一种对数据类型变量要求不太严格的语言,所以不必声明每一 个变量的类型,但在使用变量之前先进行声明是一种好的习惯。变量的类型在赋值时根据数据类型来确定。

2.  数据类型

2.1  Number 标签

①. 前言
  • var iNum=23; //整数
  • var iNum=23.0; //浮点数
②.  Number 标签的用法
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的数据类型</title>
</head>
<body>
    <script>
        var num1 = 23;
        var num2 =23.1;
        document.write(num1+"<br>");
        document.write(num2+"<br>");
        document.write(num2 +"->数据类型:"+typeof nub2+ "<br>");
        document.write(num1 +"->数据类型:"+typeof nub1+ "<br>");
    </script>
</body>
</html>
代码运行后如下:

2.2 String 标签

①. 前言
  • String 标签是一组被单引号或双引号括起来的文本,比如: var string1="This is a string";
②.  string 标签的用法
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的数据类型</title>
</head>
<body>
    <script>
        var str1 = "双引号定义字符串";
        var str2 = "单引号定义字符串"
        document.write(str1+"<br>");
        document.write(str2+"<br>");
        document.write(str1 +"->数据类型:"+typeof str1+ "<br>");
        document.write(str2 +"->数据类型:"+typeof str2+ "<br>");
    </script>
</body>
</html>
代码运行后如下:

2.3 Boolean 标签

①. 前言
  • Boolean 标签用法输出结果:true和false, 比如:  var  b = true;
②. boolean 标签的用法
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的数据类型</title>
</head>
<body>
    <script>
        var b=true;
        document.write(b+"->数据类型:"+ typeof b + "<br>");
    </script>
</body>
</html>
代码运行后如下:

2.4 Undefined 标签

①.  前言
  • 比如: var width ; 上面语句定义的变量 width,没有初始值,将被赋值 undefined
②.  undefined 标签的用法
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的数据类型</title>
</head>
<body>
    <script>
        var  u = undefined ;
        document.write(u+"->数据类型:"+ typeof u + "<br>");
    </script>
</body>
</html>
代码运行后如下:

2.5 Null标签

①.  前言
  • Null 标签表示一个空值,与 undefined 值相等
②. null 标签的用法
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的数据类型</title>
</head>
<body>
    <script>
        var u=null;
        document.write(u+"->数据类型:"+ typeof u + "<br>");
    </script>
</body>
</html>
代码运行后如下:

2.6 Object 标签

①.  前言
  • Object 标签对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。
②.  object 标签的用法
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的数据类型</title>
</head>
<body>
    <script>       
        var u=['tom','jack','joe']; // 在js中,数据属于对象object类型
        var u2= new Array('tom','jack','joe');
        document.write(u2)
    </script>
</body>
</html>
代码运行后如下:

3.  变量提升现象

  • 概念:所有的变量的声明语句(不包含赋值),都会被提升到代码的头部
        console.log(num);
        var num = 10;
        document.write(num)
        //实际运行效果(变量提升现象)
        var num;
        console.log(num);
        num =10;

六、JavaScript的运算符

  • 运算符包含了typeof运算符、算术运算符、赋值运算符、比较运算符、 布尔运算符

1.  typeof运算符

① 前言
  • <typeof>元素常用于确定JavaScript变量的类型的

 ② typeof运算符的运用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>js的数据类型</title>
</head>
<body>
    <script>
        var u=null;
        document.write(u+"->数据类型:"+ typeof u + "<br>");
    </script>
</body>
</html>
代码运行后如下: 

2.  算术运算符

① 前言
  • 算术运算符包含了加减乘除运算符 + - * /   和 取余运算符 和 自加自减运算符  ++   --

② 算术运算符的运用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>运算符</title>
</head>
<body>
      <script>
        var a=1;  //++ a=a+1
        var b=1;
      
        //自加(自减)运算符载变量名后面,先返回变量的值,然后才开始自加
        console.log(a++);
        c=a;
        a=a++
      </script>
</body>
</html>
代码运行后如下:

3. 赋值运算符

① 前言
  • 赋值运算符包含了基础赋值运算符 = 和算术赋值结合运算符  +=    -=     *=     /=     %=

② 赋值运算符的运用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>运算符</title>
</head>
<body>
      <script>
        //自加(自减)运算符载变量名后面,先自加,再先返回加后的值,
        console.log(++a); // 先a=a+1 ;然后返回。

        //算术赋值结合运算符 += -= *=  /=  %=
        console.log(a+=b);   //a=a+b
      </script>
</body>
</html>
代码运行后如下:

4.  比较运算符

① 前言

  • 比较运算符用于比较两个值的大小,然后返回一个布尔值,表示是否满足指定的条件 

② 比较运算符的运用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>运算符</title>
</head>
<body>
      <script>
         var a=1;  
         var b="1";
        //ture false
        console.log( a == b);  //true
        //相等运算符不要求数据类型完全一致,只要转换后值能一样即可
        //严格相等运算符要求数据类型完全一致
        console.log( a === b); //false
      </script>
</body>
</html>
代码运行后如下:

5.  布尔运算符

5.1  . 前言

  • 布尔值取反 : !true// false   和  !false// true
  • 非布尔值取反:对于非布尔值,取反运算符会将其转为布尔值。以下六个值取反后为true,其他值都为false。undefined、null、false、0、NaN、空字符串

5.2. 且运算符  &&

① 前言
  • 全部为真则为真,有一个为假则为假,全部为假则为假 ;理解: a为真,且b为真吗?
② 且运算符  && 的运用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>运算符</title>
</head>
<body>
      <script>
         var a=1;
         var b=1;
         var c=1;
         var a=false;
         var b=true;
         var c=true;
        console.log(a && b); //a为真,且b为真吗?
      </script>
</body>
</html>
代码运行后如下:

5.3. 或运算符  ||

① 前言 
  • 全部为真则为真,有真有假也为真,全部为假则为假;理解:  a为真,或b为真吗?
② 或运算符  || 的运用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>运算符</title>
</head>
<body>
      <script>
         var a=1;
         var b=1;
         var c=1;
         var a=false;
         var b=true;
         var c=true;
        console.log(a || b); //a为真,或b为真吗?
        console.log(a || b||c); //a为真,或b为真吗?
      </script>
</body>
</html>
代码运行后如下:

七、JavaScript的条件语句

一、条件语句

1. 单向判断   if...

① 前言
  • if 语句是最基本的条件语句,是一个关系表达式,用来实现判断。如果“条件”的值为true,则执行{ }里面的语句。否则则跳过if语句执行后面的语句。
②. if语句的运用
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS的条件语句</title>
</head>

<body>
    <script> 
        // if语句
        var num = 3;
        if (num === 3) 
        {
            num++;
        }
        console.log(num);   // 4
    </script>
</body>
</html>
 代码运行后如下:

2. 双向判断   if...else...

① 前言
  • if 语句如果“条件”的值为true,则执行{ }里面的语句。否则则执行else if { }里面的语句
②.  if...else...语句(三目运算符)的运用
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS的条件语句</title>
</head>

<body>
    <script> 
        // if...else...语句(及其嵌套使用)
        var eat = true;
        var food = "猪肉炖粉条";
        if (eat) 
        {
            if (food == "双椒鱼头") 
            {
                console.log('就吃:双椒鱼头'); 
            }
            else
            {
                console.log("就吃:猪肉炖粉条");
            }
        } 
        else 
        {
            console.log('还没到饭点');
        }
    </script>
</body>
</html>
 代码运行后如下:

 (三目运算符)的运用

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS的条件语句</title>
</head>

<body>
    <script> 
        // 判断一个数是奇数还是偶数(三目运算符实现)
        var n = 100;
        console.log(n % 2 === 0 ? '偶数' : '奇数');
    </script>
</body>
</html>
代码运行后如下:

3. 多向判断语句  if...else if...else if...

① 前言
  • if 语句如果“条件”的值为true,则执行{ }里面的语句;否则则执行else if { }里面的语句;else if { }语句如果“条件”的值为true,则执行else  { }里面的语句。
②.  if...else if...else if...语句的运用
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS的条件语句</title>
</head>

<body>
    <script> 
        // if...else...语句(及其嵌套使用)
        var eat = true;
        var food = "猪肉炖粉条";
        if (eat) 
        {
            if (food == "双椒鱼头") 
            {
                console.log('就吃:双椒鱼头'); 
            }
            else
            {
                console.log("就吃:猪肉炖粉条");
            }
        } 
        else 
        {
            console.log('还没到饭点');
        }
    </script>
</body>
</html>
 代码运行后如下:

4. 多向判断语句 switch

① 前言 
  • switch 语句中变量的值等于数值1时,执行第一个 case 语句之后的语句段,直到break语句,然后跳出 switch 语句
②.  switch 语句的运用
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS的条件语句</title>
</head>

<body>
    <script> 
        //  多向判断语句  switch
        var x = 3;
        switch (x)
        {   
            case 0 :  console.log("x为0");  
                      break;
            case 1 :  console.log("x为1");  
                      break;
            default : console.log("x既不是0也不是1");  
        }
    </script>

</body>
</html>
 代码运行后如下:

二、循环语句

1. for循环

① 前言
  • for 语句实现条件循环,当“条件”成立时,执行语句段;否则跳出循环体,循环结束。
for (初始化;条件;增量){
    语句段;
}
② for循环语句的运用
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS的循环语句</title>
</head>

<body>

    <script>
        //  递增输出1~10
        for(var i=1;i<=10;i++)
        {
            console.log(i);
        }
</body>
</html>
代码运行后如下:

2. while循环

① 前言
  • while语句适合条件复杂无法预知循环次数的循环,for语句适合已知循环次数的循环
② for循环语句的运用
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS的循环语句</title>
</head>

<body>

    <script>
        // 递增输出0~9
        var i = 0;
        while (i < 10) 
        {
            console.log('i的值为:' + i);
            i = i + 1;
        }
</body>
</html>
代码运行后如下:

3. break和continue语句

  • break语句用于无条件跳出循环结构或switch语句break语句是单独使用的。
  • continue语句是结束本轮循环,跳转到循环的开始处,从而开始下一轮循环。
死循环的案例(不要使用,会卡死!)
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS的循环语句</title>
</head>

<body>

    <script>
        // 永久循环(死循环),如果确实需要永久循环,推荐这种写法。
        while (1) 
        {
            console.log('每天早上对你说一句肉麻话: 我爱你,中国');
        }
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值