欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > javaScript 和 Java 的语法区别(有前端基础)

javaScript 和 Java 的语法区别(有前端基础)

2024/11/29 22:33:31 来源:https://blog.csdn.net/jxnd123456/article/details/143436759  浏览:    关键词:javaScript 和 Java 的语法区别(有前端基础)

目录

一、语法风格

1.变量声明

2.代码块

3.分号

二、面向对象编程

1. 类和对象的定义

2. 方法和属性的访问修饰符

3. 继承方式

 三、数据类型和类型转换

1.数据类型

 2. 类型转换

四、异常处理

1. 语法结构

2. 异常类型

五、开发工具和生态系统

1.开发工具

2.运行环境


各位前端小伙伴工作中应该能经常看到后端同学的代码,虽然语法有一定的区别,但代码逻辑和思路让我们也能看懂一部分后端代码。如果对Java有兴趣的话,可以看看以下对两者区别的介绍,让你在和后端沟通中更为顺畅。

一、语法风格

1.变量声明

        JS: 

                使用varletconst声明变量。其中,var存在变量提升的现象,而letconst不存在变量提升,并且const声明的变量不能被重新赋值.

                示例:

       var x = 10;console.log(x); // 10console.log(y); // undefinedvar y = 20;let a = 30;const b = 40;

        Java:

                 必须明确指定变量的类型,如int num;String str;等。在 Java 中没有变量提升的概念。

                示例:

       int num;num = 10;

2.代码块

         JS:

                使用大括号{}来定义代码块,例如函数体、条件语句、循环语句等。

                示例:

       if (true) {console.log('This is inside the if block.');}

         Java: 

                同样使用大括号来定义代码块,但 Java 的代码块结构更加严谨,例如在类、方法、循环等结构中,代码块的作用范围和规则更加明确。

                示例:

       if (true) {System.out.println("This is inside the if block.");}

3.分号

        JS:

                 分号是可选的(可写可不写,不影响程序执行),但为了避免一些潜在的错误,通常建议加上分号。

                示例:

       let x = 10let y = 20;console.log(x + y)

         Java: 

                分号是必须的,用于结束一条语句。

                示例:

       int num = 10;System.out.println(num);

二、面向对象编程

1. 类和对象的定义

        JS:

                在 ES6 中引入了类的概念,但本质上是基于原型的面向对象编程。可以使用class关键字定义类,通过构造函数和原型链来实现继承。

                示例:

       class Person {constructor(name) {this.name = name;}sayHello() {console.log(`Hello, my name is ${this.name}.`);}}let person = new Person('John');person.sayHello();

        Java: 

                 是纯粹的面向对象编程语言,使用class关键字定义类,通过类的继承和接口实现多态性。Java 的面向对象编程更加严格和规范。

                示例:

       class Person {private String name;public Person(String name) {this.name = name;}public void sayHello() {System.out.println("Hello, my name is " + this.name + ".");}}Person person = new Person("John");person.sayHello();

2. 方法和属性的访问修饰符

         JS: 

                没有像 Java 那样严格的访问修饰符。虽然可以通过一些约定来模拟私有属性和方法,但并不是真正的访问限制。

                示例:

       class Person {constructor(name) {this._name = name; // 约定以 _ 开头的为私有属性}get name() {return this._name;}set name(newName) {this._name = newName;}}let person = new Person('John');console.log(person.name);person.name = 'Mike';console.log(person.name);

        Java: 

                 有publicprivateprotected等访问修饰符,可以严格控制类的成员的访问权限。

                示例:

       class Person {private String name;public Person(String name) {this.name = name;}public String getName() {return name;}public void setName(String newName) {this.name = newName;}}Person person = new Person("John");System.out.println(person.getName());person.setName("Mike");System.out.println(person.getName());

3. 继承方式

        JS:  

                主要通过原型链和构造函数的方式实现继承,相对比较灵活。

                示例:

       class Animal {constructor(name) {this.name = name;}makeSound() {console.log('Animal makes a sound.');}}class Dog extends Animal {constructor(name) {super(name);}makeSound() {console.log('Woof!');}}let dog = new Dog('Buddy');dog.makeSound();

        Java

                支持单继承和多实现,继承关系更加明确和严格 。

                示例:

       class Animal {public void makeSound() {System.out.println("Animal makes a sound.");}}class Dog extends Animal {@Overridepublic void makeSound() {System.out.println("Woof!");}}Dog dog = new Dog();dog.makeSound();

 三、数据类型和类型转换

1.数据类型

        JS

                是一种弱类型语言,变量的数据类型可以动态改变。有基本数据类型(如numberstringbooleannullundefined等)和引用数据类型(如对象、数组等)。

                示例:

       let x = 10;x = 'Hello';x = true;

        Java

                是一种强类型语言,变量在声明时必须指定数据类型,并且不能随意改变。Java 有基本数据类型(如intdoublechar等)和引用数据类型(如类、接口、数组等) 。

                示例:

       int num = 10;// num = "Hello"; // 编译错误,不能将字符串赋值给整型变量

 2. 类型转换

        JS

                自动类型转换比较灵活,可能会在一些情况下自动进行类型转换,这可能会导致一些意想不到的结果。例如,"1" + 2的结果是"12",而不是3。

                示例:

       console.log("1" + 2); // "12"console.log(1 + "2"); // "12"console.log(true + 1); // 2

        Java

                类型转换相对比较严格,需要显式地进行类型转换,否则会编译错误。例如,将int类型转换为double类型需要使用强制类型转换符(double)。

                示例:

       int num1 = 10;double num2 = num1; // 自动类型转换,int 转换为 doubleint num3 = (int) 10.5; // 强制类型转换,double 转换为 int

四、异常处理

1. 语法结构

        JS

                使用try...catch...finally语句来处理异常。可以捕获同步代码中的异常,但对于异步代码中的异常处理相对比较复杂,需要使用promiseasync/await等方式来处理。

                示例:

       try {// 可能抛出异常的代码let result = 10 / 0;} catch (error) {console.log('An error occurred: ' + error.message);} finally {console.log('Finally block executed.');}

         Java

                同样使用try...catch...finally语句来处理异常。Java 的异常处理机制更加完善,可以捕获各种类型的异常,包括编译时异常和运行时异常。

                示例:

       try {// 可能抛出异常的代码int result = 10 / 0;} catch (ArithmeticException e) {System.out.println("An error occurred: " + e.getMessage());} finally {System.out.println("Finally block executed.");}

2. 异常类型

         JS

                有一些内置的异常类型,如ErrorTypeErrorReferenceError等,但也可以自定义异常。

                示例:

       function divide(a, b) {if (b === 0) {throw new Error('Division by zero is not allowed.');}return a / b;}try {let result = divide(10, 0);} catch (error) {console.log(error.message);}

         Java

                有丰富的内置异常类型,如IOExceptionSQLExceptionNullPointerException等,并且可以自定义异常类来满足特定的需求。

                示例:

       class CustomException extends Exception {public CustomException(String message) {super(message);}}public class Main {public static void main(String[] args) {try {throw new CustomException("This is a custom exception.");} catch (CustomException e) {System.out.println(e.getMessage());}}}

五、开发工具和生态系统

1.开发工具

        JS:前端开发主要使用文本编辑器(如 Visual Studio Code、Sublime Text 等)和浏览器开发者工具进行调试。也有一些专门的前端框架和工具,如 React、Vue、Angular 等,以及包管理工具 npm 和 yarn。

        Java:通常使用集成开发环境(如 IntelliJ IDEA、Eclipse 等)进行开发,这些 IDE 提供了强大的代码编辑、调试、构建和项目管理功能。Java 也有丰富的开发框架和库,如 Spring、MyBatis 等,以及包管理工具 Maven 和 Gradle。

2.运行环境

        JS:主要在浏览器和 Node.js 环境中运行。浏览器提供了 DOM 和 BOM 等 API,用于网页开发;Node.js 是一个基于 Chrome V8 引擎的服务器端 JavaScript 运行环境,可以进行服务器端开发。

        Java:可以在各种平台上运行,包括服务器、桌面应用、移动设备等。Java 虚拟机(JVM)提供了跨平台的运行环境,使得 Java 程序可以在不同的操作系统上运行。

         

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com