JavaScript语法基础——变量,数据类型,运算符和程序控制语句(小白友好篇,手把手教你学会!)

 一、JavaScript概述

JavaScript是一种高级编程语言,常用于网页开发和服务器端应用程序。它是一种动态类型语言,可以在浏览器中直接解释执行,而不需要编译。

脚本(Script)是一种与计算机程序相关的指令集或代码块,用于执行特定的任务或操作。脚本通常用于自动化重复性的任务或进行特定功能的扩展。脚本语言是一种专门用于编写脚本的编程语言,与传统的编译型语言不同,脚本语言通常不需要编译,可以直接解释执行。脚本语言具有易学易用、灵活、动态和交互式等特点。

二、 怎么在网页中使用JavaScript

要在网页中使用JavaScript,有三种方法:行内式内嵌式外链式

 1、输出方式

在介绍使用方法前先讲一下 JavaScript 的3种输出方式:

(1)使用 console.log():console.log()是JavaScript提供的一种输出到控制台的方法。它通常用于调试和测试代码,可以在浏览器的开发者工具控制台(按F12直接打开)中查看输出结果。

例如:

console.log("第一种:通过浏览器控制台进行输出!此方法最常用!"); 

 

(2)使用 alert():alert()用于在浏览器中弹出一个警告框,显示指定的文本内容。它主要用于简单的弹窗提示,通常用于调试和测试代码。 

 例如:

alert("第二种:通过浏览器弹出框进行输出"); 

(3)使用 document.write():document.write()方法可以将指定的内容直接写入到HTML文档中。它通常用于在网页中动态生成内容。

 例如:

document.write("第三种:直接在网页页面中进行输出"); 

 

 2、行内式(在HTML标签内添加脚本)

行内式是指在HTML标签的属性中直接使用JavaScript代码。这种方法适用于简单的、短小的代码片段,一般需要监听事件(非常不推荐,了解即可!)。

可以在HTML标签中使用事件属性(如onclick、onload等)来执行JavaScript代码。例如,要在按钮点击时触发一个弹出窗口:

<input type="submit" value="登录" onclick="javascript:alert('登录失败');"/>

点击登录时就会显示弹窗 “登录失败” 。 

 3、内嵌式(在HTML文档中嵌入脚本程序) 

 内嵌式就是可以在HTML文档中任意位置内嵌js脚本,添加<script>标签,并将JavaScript代码放在其中。

例如, HTML文档中打印输出内容:

    <script> document.write("你好,云中医计算机学院"); //document.write()向网页输出内容</script>

 4、外链式(链接脚本文件) 

在实际开发中,为了更好地组织代码、提高可维护性,建议使用外链式将JavaScript代码放在外部文件中,并通过<script>标签的"src"属性引用外部文件。  


创建一个 JavaScript 文件:首先,在你的项目中创建一个扩展名为 .js 的 JavaScript 文件。你可以使用任何文本编辑器来创建并编辑这个文件。例如,你可以创建一个名为script.js的文件。

编写 JavaScript 代码:在刚刚创建的 JavaScript 文件中,编写你想要运行的 JavaScript 代码。例如,你可以在script.js文件中编写以下代码:

document.write("外链式引用JS脚本");

将 JavaScript 文件链接到 HTML 文件:在 HTML 文件中,添加一个<script>标签来链接你的 JavaScript 文件。在<script>标签中使用 src 属性来指定 JavaScript 文件的路径。

<!DOCTYPE html>
<html>
<head><title>JS的使用方式</title>
</head>
<body><!-- 其他HTML内容 --><script src="script.js"></script>
</body>
</html>

通过以上步骤,你就可以在网页中使用外链式(链接脚本文件)的方式来使用 JavaScript 了。这种方式适用于较大的 JavaScript 代码,可以将代码分离到不同的文件中,并通过链接到 HTML 文件中来使用它们。这样可以使代码更清晰、易于维护。

三、数据类型 

在JavaScript中,有多种数据类型用于存储不同类型的值。

以下是JavaScript中的常见数据类型: 

1. 字符串(String):用单引号“ ' ”或者双引号“ " ”来说明,用于表示文本。

        var str="Good morning!"; document.write(str + " -> 数据类型:"+ typeof str + "<br>"); 


2. 数字(Number):用于表示数字,可为整数和浮点数。 浮点数可以包含小数点,也可以包含一个e(大小写均可,表示10的幂),或者同时包含这两项。

        // 小数var x1=65.30;document.write(x1 + " -> 数据类型:"+ typeof x1 + "<br>");// 数字var x2=65;document.write(x2 + " -> 数据类型:"+ typeof x2 + "<br>");// 117*10的3次方var y=117e3;document.write(y + " -> 数据类型:"+ typeof y + "<br>");// 117*10的-3次方var z=117e-3;document.write(z + " -> 数据类型:"+ typeof z + "<br>");


3. 布尔值(Boolean):用于表示真(true)或假(false)的值。

        var x=true;document.write(x + " -> 数据类型:"+ typeof x + "<br>");

 


4. 对象(Object):用于存储复杂数据和方法。

5. 数组(Array):用于存储多个值的有序集合。

        // 对象 object   (对象类型下的数组类型)var persons=new Array("Tom","Jack","Kate");document.write(persons + " -> 数据类型:"+ typeof persons + "<br>");

 


6. undefined:用于表示未定义的值。

        var person1;document.write(person1 + " -> 数据类型:"+ typeof person1 + "<br>");


7. null:用于表示空值或不存在的对象。

        // 特殊情况:尽管 null 是一个表示空值的特殊关键字,// 但 typeof null 会返回 "object"。// 这是一个著名的 JavaScript 特性,// 虽然有些令人困惑,但已经存在了很长时间(知道一下就行,不必理会)var person2=null;document.write(person2 + " -> 数据类型:"+ typeof person2 + "<br>");

 了解和正确使用不同的数据类型是编写JavaScript代码的关键。这些数据类型使你能够在代码中存储和操作不同类型的值。

四、变量 

JavaScript 中的变量用于存储和操作数据。使用变量可以在代码中存储和引用不同类型的值。 

1、变量的命名

在JavaScript中,变量的命名需要遵循一些规则和约定。以下是一些关于变量命名的指导原则:

  1. 使用有意义的变量名:选择能够清楚描述变量用途的名称。这可以使代码更易读和易于理解。

  2. 变量名不能以数字开头:变量名必须以字母、下划线(_)美元符号($)开头。

  3. 变量名区分大小写:JavaScript是区分大小写的语言,因此 myVariable和 myvariable是不同的变量。

  4. 避免使用JavaScript保留字:JavaScript有一些保留字(如 varfunctionif、true等),它们具有特殊的含义,不能用作变量名。

  5. 使用驼峰命名法:在多个单词组成的变量名中,第一个单词小写,后续单词首字母大写。例如:myVariablefirstName

2、变量的声明

在 JavaScript 中,你可以使用 varlet 或 const 来声明变量。这些关键字的使用方式略有不同:

  • var:在整个函数作用域范围内都可见,如果变量在函数之外声明,它将成为全局变量。
  • let:具有块级作用域,在花括号 {} 内部声明的变量仅在该块范围内可见。
  • const:也具有块级作用域,用于声明常量,声明后的值无法修改。

 例如:

var name = "John";
console.log("My name is " + name);let age = 25;
age = age + 1;
console.log("Next year, I will be " + age);const PI = 3.14;
console.log("The value of PI is " + PI);

在上面的例子中,name 是一个使用 var 声明的变量,age 是一个使用 let 声明的变量,PI 是一个使用 const 声明的常量。然后可以使用变量名来引用和操作其值。

使用 console.log 来将变量的值输出到控制台。输出的结果分别是:

变量提升现象

 变量提升是JavaScript解释器在执行代码之前的一个步骤,它会将变量和函数的声明提升到作用域顶部,但不会提升变量的初始化或赋值。

        // 原来写的语句(变量先用后声明)console.log(num);var num = 10; // 实际运行效果(变量提升现象)var num;console.log(num);num = 10; 

五、运算符

运算符是一种用于执行操作的符号或关键字。在JavaScript中,有多种类型的运算符,包括算术运算符、赋值运算符、比较运算符、逻辑运算符等。

下面用代码来操作解释:

算术运算符

  • 加法运算符:+
  • 减法运算符:-
  • 乘法运算符:*
  • 除法运算符:/
  • 取余运算符:%
  • 自增运算符:++
  • 自减运算符:--

 加减乘除运算符:

    <!-- 加减乘除运算符 --><script> console.log(10 + 10);  // 20console.log(100 - 10); // 90console.log(10 * 2);   // 20console.log(10 / 5);   // 2</script>

取余运算符: 

    <!-- 取余运算符 --><script> console.log(13 % 5);  // 3</script>

 自增自减运算符:

自增和自减运算符有一个需要注意的地方,就是放在变量之后,会先返回变量操作前的值,再进行自增/自减操作(先取值,后操作);放在变量之前,会先进行自增/自减操作,再返回变量操作后的值(先操作,后取值)

    <script> var a = 1;var b = 1;console.log(++a);  // 2console.log(--b);  // 0</script><script> var x = 1;var y = 1;// 放在变量后console.log(x++);  // 1  即返回: xconsole.log(x);    // 2 // 放在变量前console.log(++y);  // 2  即返回: y+1</script>

 赋值运算符

  • 简单赋值运算符:=
  • 加法赋值运算符:+=
  • 减法赋值运算符:-=
  • 乘法赋值运算符:*=
  • 除法赋值运算符:/=
  • 取余赋值运算符:%=
    <script> // 等同于 x = x + yvar x = 2;var y = 1;console.log(x += y);  //3// 等同于 x = x - yvar x = 2;var y = 1;console.log(x -= y);  //1// 等同于 x = x * yvar x = 2;var y = 1;console.log(x *= y);  //2// 等同于 x = x / yvar x = 2;var y = 1;console.log(x /= y);  //2// 等同于 x = x % yvar x = 2;var y = 1;console.log(x %= y);  //0</script>

 比较运算符

  • 相等运算符:==
  • 不等运算符:!=
  • 全等运算符:===
  • 不全等运算符:!==
  • 大于运算符:>
  • 小于运算符:<
  • 大于等于运算符:>=
  • 小于等于运算符:<=
    <script>var num1 =  10 ;var num2 =  10 ;var num3 = "10";console.log(num1 == num2);       // trueconsole.log(num1 === num2);      // trueconsole.log(num1 === num3);      // false</script>

逻辑运算符

  • 逻辑与运算符:&&
  • 逻辑或运算符:||
  • 逻辑非(取反)运算符:!

 取反运算符:

    <!-- 取反运算符 --><script>console.log(!undefined);         // trueconsole.log(!null);              // trueconsole.log(!0);                 // trueconsole.log(!NaN);               // trueconsole.log(!"");                // trueconsole.log(!888);               // falseconsole.log(!'you are my baby'); // false</script>

其中,NaN的意思是“Not a Number”,即“非数值”或“不是一个数值”,它用于表示一个本来要返回数值的操作数未返回数值的情况。NaN通常出现在数学运算中,以下几种情况可能导致NaN的产生:除以0:在进行除法运算时,如果除数为0,那么结果就无法定义,通常会被设置为NaN。非法数学运算:当进行一些非法数学运算时,比如对负数进行平方根运算,结果也会被设置为NaN。数据类型不匹配:在类型转换时,如果类型转换失败或者转换后的结果不是有效数值,结果也会被设置为NaN。

数值溢出:当进行数值计算时,如果计算结果超出了所能表示的范围,结果也会被设置为NaN。

缺失数据:在某些数据分析任务中,如果数据中存在缺失值,那么在进行数据计算时,结果也会被设置为NaN。

且运算符(&&): 

    <!-- 且运算符(&&) --><script>console.log(10 < 20 && 10 > 5);   // trueconsole.log(10 > 20 && 10 > 5);   // false</script>

 或运算符(||):

    <!-- 或运算符(||) --><script>console.log(10 < 20 || 10 > 5);   // trueconsole.log(10 > 20 || 10 > 5);   // trueconsole.log(10 > 20 || 10 < 5);   // false</script>

六、程序控制语句

1、if 和 if...else条件语句 

if if...else 是JavaScript中常用的条件语句,用来根据条件执行不同的代码块。 

1. if语句: if语句根据给定的条件判断是否执行某个代码块。

语法:

if (条件) {
  // 条件为真时执行的代码块
}

示例:

        var num = 3;if (num === 3) {num++;}console.log(num);

运行结果:

 


2. if...else语句: if...else语句在条件为真时执行一个代码块,否则执行另一个代码块。

语法: 

if (条件) {
  // 条件为真时执行的代码块
} else {
  // 条件为假时执行的代码块
}

示例: 

        // if...else...语句(及其嵌套使用)var eat = true;var food = "猪肉炖粉条";if (eat) {if (food == "双椒鱼头") {console.log('就吃:双椒鱼头'); }else{console.log("就吃:猪肉炖粉条");}} else {console.log('还没到饭点');}

运行结果:

 


 用三目运算符代替if...else...语句:

        // 判断一个数是奇数还是偶数(if...else...语句实现)var n = 100;if (n % 2 === 0) {console.log("偶数");} else {console.log("奇数");}// 判断一个数是奇数还是偶数(三目运算符实现)var n = 100;console.log(n % 2 === 0 ? '偶数' : '奇数');

在if语句和if...else语句中,条件可以是任何可以返回布尔值的表达式。当条件为真时,if语句或if...else语句中的代码块会被执行;当条件为假时,if...else语句中的else代码块会被执行(如果存在) 

2、if...else if...和switch条件语句 

1. if...else if...语句是一种多重条件判断的语句,用于根据不同的条件执行不同的代码块。当需要判断多个条件时,if...else if...语句比只有一个if...else语句更加灵活。

语法: 

if (条件1) {
  // 当条件1为真时执行的代码块
} else if (条件2) {
  // 当条件1为假且条件2为真时执行的代码块
} else if (条件3) {
  // 当条件1和条件2都为假且条件3为真时执行的代码块
} else {
  // 当所有条件都为假时执行的代码块
}

示例:

        //  多向判断语句  if...else if...else...var greeting="";var time=new Date().getHours();if (time<12){  greeting="现在是上午";  }else if (time<18){  greeting="现在是下午";  }else{  greeting="现在是晚上";  }console.log(greeting);  

2. switch语句是JavaScript中的条件语句,用来根据不同的条件执行不同的代码块。switch语句适用于需要判断多个可能取值的情况。 

语法:

switch (表达式) {
  case 值1:
    // 当表达式等于值1时执行的代码块
    break;
  case 值2:
    // 当表达式等于值2时执行的代码块
    break;
  ...
  default:
    // 当表达式不等于所有case值时执行的代码块
    break;
}

示例:

        //  多向判断语句  switchvar x = 3;switch (x){   case 0 :  console.log("x为0");  break;    //break语句用于跳出代码块或循环case 1 :  console.log("x为1");  break;default : console.log("x既不是0也不是1");  }

运行结果:

 

3、for循环语句 

for循环语句用于重复执行一段代码块,可以根据指定的条件来控制循环执行的次数。 

 语法:

for (初始化语句; 循环条件; 循环后操作) {
    // 循环体代码块
}

  • 初始化语句:在循环开始之前执行一次的语句,通常用于设置循环变量的初始值。
  • 循环条件:在每次循环开始之前检查的条件,只有当条件为真时才会执行循环体代码块。如果条件为假,则跳出循环。
  • 循环后操作:在每次循环结束之后执行的操作,通常用于更新循环变量的值。

(都不写的话,就是永久循环(死循环),不推荐这种写法。)

 示例:

        //  递增输出1~10for(var i=1;i<=10;i++){console.log(i);}

运行结果:

永久循环(死循环),如果确实需要永久循环,推荐这种写法: 

        while (1) {console.log('每天早上对你说一句肉麻话: 我爱你,中国');}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/461366.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 中View.post的用法

View.post 是 Android 中 View 类的一个方法&#xff0c;它允许我们在视图 (View) 完成其布局 (Layout) 阶段后&#xff0c;将一个任务放到主线程的消息队列中&#xff0c;以便稍后执行。这种方式通常用于确保在 View 的尺寸、位置等布局属性已经计算完成后执行某些操作。 基本…

健康之路押注医药零售:毛利率下滑亏损扩大,医疗咨询人次大幅减少

《港湾商业观察》黄懿 2024年9月13日&#xff0c;健康之路股份有限公司&#xff08;下称“健康之路”&#xff09;再次递表港交所&#xff0c;建银国际为独家保荐人。健康之路国内运营主体为健康之路&#xff08;中国&#xff09;信息技术有限公司和福建健康之路信息技术有限公…

在pycharm中使用sqllite

在pycharm中使用sqllite sqllite 简介 SQLite 是一个开源的、轻量级的、关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它设计用于嵌入到应用程序中&#xff0c;并且可以在无需外部服务器进程的情况下运行。SQLite 提供了完整的 SQL 语言支持&#xff0c;允…

游戏启动失败:8种修复xinput1_3.dll错误的几种方法教程,轻松解决xinput1_3.dll错误

当你准备好在一天的工作后放松一下&#xff0c;启动你最爱的游戏&#xff0c;却突然收到一个“xinput1_3.dll 丢失”的错误消息&#xff0c;这无疑是令人沮丧的。幸运的是&#xff0c;xinput1_3.dll丢失问题通常可以通过几个简单的步骤来解决。本文将详细介绍这些步骤&#xff…

多线程和线程同步基础篇学习笔记(Linux)

大丙老师教学视频&#xff1a;10-线程死锁_哔哩哔哩_bilibili 目录 大丙老师教学视频&#xff1a;10-线程死锁_哔哩哔哩_bilibili 线程概念 为什么要有线程 线程和进程的区别 在处理多任务的时候为什么线程数量不是越多越好? Linux提供的线程API 主要接口 线程创建 pth…

DDRPHY数字IC后端设计实现系列专题

在对 LPDDR3 物理层接口模块进行后端设计之前&#xff0c;需要对该模块的功能结 构以及后端物理设计流程的相关理论进行深入的分析和研究。本章第一节详细分 析了本次 LPDDR3 物理层接口模块的结构&#xff0c;为该模块的布图布局的合理规划奠 定了理论基础&#xff0c;并且分析…

【笔记】数据结构与算法

参考链接&#xff1a;数据结构(全) 参考链接&#xff1a;数据结构与算法学习笔记 一些PPT的整理&#xff0c;思路很不错&#xff0c;主要是理解角度吧&#xff0c;自己干啃书的时候结合一下会比较不错 0.总论 1.数据 注&#xff1a;图是一种数据结构&#xff01;&#xff01;…

无人机救援系统基本组成

无人机救援系统基本组成 1. 源由2. 组成2.1 无人机载具2.1.1 多旋翼2.1.2 垂起固定翼2.1.3 智能避障2.1.4 物资投递 2.2 智能吊舱2.2.1 云台2.2.2 高清摄像2.2.3 红外热成像2.2.4 激光测距2.2.5 目标跟踪 2.3 通讯链路2.3.1 超长距离通信2.3.2 长距离通信2.3.3 中等距离通信 2.…

拍拍贷鸿蒙版H5容器之路

背景介绍 业务背景 2024年1月18日华为宣布&#xff1a;HarmonyOS NEXT 将不再支持 Android系统&#xff0c;基于以上背景及国内信贷业务现状&#xff0c;公司决定启动借款App鸿蒙化项目。 下图是2024年6月华为HDC大会上&#xff0c;华为宣布 HarmonyOS NEXT 将面向开发者和先…

微信小程序服务通知

项目中用到了小程序的服务消息通知&#xff0c;通知订单状态信息&#xff0c;下边就是整理的一下代码&#xff0c;放到项目中&#xff0c;把项目的小程序appid和小程序的secret写进去&#xff0c;直接运行即可 提前申请好小程序服务信息通知短信模板&#xff0c;代码需要用到模…

3000字帮你彻底搞懂Java抽象类与接口的区别(含JDK8接口新增三种方法与丰富案例)

Java-OOP 1-Final 1.1简介 final关键字是最终的意思&#xff0c;可以修饰&#xff1a;类、方法、变量。 修饰类&#xff1a;该类被成为最终类&#xff0c;特点是不能被继承了。修饰方法&#xff1a;该方法被称为最终方法&#xff0c;特点是不能被重写了。修饰变量&#xff…

有没有噪音低的宠物空气净化器推荐?希喂、IAM性能PK

有一说一&#xff0c;随着清洁家电市场的不断发展&#xff0c;市面上的各种清洁家电品类也是越来越多&#xff0c;像是吸尘器、洗地机、扫地机等等这些产品估计大家都很熟悉了。 但&#xff01;如果你家也跟我家一样也是养了几只猫猫狗狗&#xff0c;那你就会发现到&#xff0…

vscode摸鱼学习插件开发

不知道大家在摸鱼的时候&#xff0c;会不会想要学习&#xff1f; 或者有没有考公人&#xff0c;下班要学习的&#xff1f; 上班时间摸鱼&#xff0c;下班时间不够学习&#xff1f; 为此&#xff0c;我决定开发一个vscode插件&#xff0c;来刷粉笔题 粉笔插件名称&#xff1a;…

hive将包含逗号的字段拆分为多列

目录 一、概述 二、行动 1.准备数据 2.数据清洗 3.substring_index函数 4.split函数实现 一、概述 想将hive表中包含逗号的字段按逗号做分隔符进行分列操作 二、行动 1.准备数据 --1 select {1,2,3,4,5,6,7,8} as num_str --使用的数据2.数据清洗 --2 select num_s…

文心一言 VS 讯飞星火 VS chatgpt (381)-- 算法导论24.5 1题

一、给出图24-2的与图中两棵最短路径树不同的另外两棵最短路径树。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在图论中&#xff0c;最短路径树&#xff08;Shortest Path Tree, SPT&#xff09;是一种从单个源点到所有其他节点的最短路径形成的树。给定一个…

故障诊断 | MTF-TLSSA-DarkNet-GRU-MSA迁移学习故障识别程序(t分布+莱维飞行改进麻雀优化)

故障诊断 | 故障诊断实例代码 目录 故障诊断 | 故障诊断实例代码效果一览基本介绍程序设计参考资料 效果一览 基本介绍 利用了迁移学习和多项技术改进&#xff0c;包括麻雀搜索法、DarkNet19、GRU、多头注意力机制等&#xff0c;以提高故障识别的准确性和效率 模型框架&#x…

在Bash脚本中 set -e 是什么意思

问题 我正在研究这个预安装(preinst)脚本的内容&#xff0c;该脚本会在从 Debian 软件包(.deb)文件解压该包之前执行。 脚本包含以下代码&#xff1a; #!/bin/bash set -e # Automatically added by dh_installinit if [ "$1" install ]; thenif [ -d /usr/share…

使用yolov3配置文件训练自己的数据

目录 前言 一、准备数据集 二、创建文件结构 三、格式化文件 1.data文件夹 2.config文件夹 四、修改yolo的配置文件 1.train文件 2.json2yolo文件 3.datasets文件 前言 使用yolov3框架训练自己的数据大致分为这四步&#xff1a; 准备数据集创建文件结构格式化文件 …

【小白学机器学习29】 概率统计与图形 ( hist, bar, pie , box ,scatter ,line)

目录 1 频度/次数 1.1 频度统计表&#xff1a;频度分布表 1.2 频数分布图直方图 histogram / hist 1.3 对比&#xff0c;柱状图 bar graph /column chart 2 饼图 pie chart 2.1饼图特点 3 南丁格尔玫瑰图 4 茎叶图 stem-and-leaf display 5 箱型图 box plot 6 …

springboot098基于web的网上摄影工作室的开发与实现(论文+源码)_kaic

网上摄影工作室 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了网上摄影工作室的开发全过程。通过分析网上摄影工作室管理的不足&#xff0c;创建了一个计算机管理网上摄影工作室的方案。文章介绍了网上摄影工…