JavaScript和java在词法结构上的不同点

在词法结构上,JavaScript和java有几个重要的不同点。

下面是它们之间的主要区别:

 1. 大小写敏感性: JavaScript是区分大小写的,这意味着变名"myVariable"和"myvariable"是不同的。而Java则是大小写不敏感的,它将这两个变量名视为相同。

 2. 关键字: JavaScript和Java有一些共享的关键字,如"if"、"else"、"for"等,但它们也有各自独有的关键字。在JavaScript中,常见的独有关键字包括"let"、"const"、"var"等。而Java的独有关键字包括"class"、"interface"、"public"等。 

 3. 变量声明: 在JavaScript中,可以使用关键字"var"、"let"和"const"来声明变量。"var"是旧版的声明方式,而"let"和"const"是ES6(ECMAScript 2015)引入的新的声明方式。而在Java中,使用关键字"int"、"boolean"、"String"等来声明变量,需要显式指定变量的类型。

 4. 数据类型: JavaScript和Java在数据类型上也有一些差异。JavaScript是一种动态类型语言,它的变量可以在运行时被赋予不同类型的值。而Java是一种静态类型语言,变量在声明时必须指定类型,并且在编译时类型检查会被执行。

 5. 注释: 在JavaScript中,可以使用"//"来表示单行注释,或使用"/* ... */"表示多行注释。而Java也使用"//"来表示单行注释,但多行注释需要使用"/* ... */"。

 6. 区块: 在JavaScript中,代码块由花括号"{}"括起来。而在Java中,同样使用花括号表示代码块。 

 这些是JavaScript和Java在词法结构上的一些主要不同点。尽管它们在名称上有相似之处,但它们是两种不同的编程语言,各自具有独特的特点和用途。

关于数据类型,展开讲讲

Java八大基本数据类型

byte,short,int,long,

float,double,

char,

boolean

分为三大类. ①数值型(包含4个整数类型2个浮点类型)②字符型. ③布尔型

Javascript七大基本数据类型

Number 数值类型,包括整数和浮点数

String 字符串类型,表示文本数据

Boolean 布尔类型,表示逻辑值

Null 空类型,表示空值或不存在的对象引用

Undefined 表示未定义的值,当变量声明但未赋值时,默认为undefined

Object 对象类型,是一种复杂的数据类型,可以用于存储多个键值对

Symbol 表示唯一且不可变的值,用于创建对象的唯一属性键。

Object

Object: 对象类型是一种复杂的数据类型,可以用于存储多个键值对。对象的键(属性)是字符串类型,值可以是任意数据类型,包括其他对象。

定义对象的方式有多种,下面是一些常见的方式: 

1. 对象字面量(Object Literal):

let person = { name: "John",  age: 30,  city: "New York" }; 

2.使用new关键字和构造函数:

let person = new Object(); 
person.name = "John"; 
person.age = 30; 
person.city = "New York";

3. 对象可以使用点号.或方括号[]来访问和修改属性的值,例如:

console.log(person.name); // 输出: "John" 
person.age = 31; 
console.log(person["age"]); // 输出: 31

4.对象还可以具有方法(函数作为属性),用于执行特定的操作。

Symbol

Symbol是在ES6(ECMAScript 2015)中引入的新数据类型。它是JavaScript中的第七种数据类型,用于创建唯一且不可变的值。

Symbol的主要特点是其值是唯一的,即使两个Symbol的描述相同,它们也是不相等的。

这使得Symbol非常适合用作对象属性的键,可以防止键名冲突。 

 Symbol的创建方式是通过Symbol函数调用并传递一个可选的描述参数。示例:

let sym1 = Symbol(); 
let sym2 = Symbol("key"); 

Symbol可以作为对象的属性键,也可以用作Symbol对象的标识符。要访问Symbol对象的描述,可以使用`description`属性。

示例:

let obj = { [sym1]: "value" }; 
console.log(obj[sym1]); // 输出: "value"
let sym3 = Symbol("key"); 
console.log(sym3.description); // 输出: "key" 

Symbol的引入丰富了JavaScript的数据类型,使开发人员能够更好地控制和管理对象属性的唯一性

Symbol的使用场景: 

 1. 唯一的对象属性键:由于Symbol的值是唯一且不可变的,它们非常适合作为对象属性的键,以确保键名的唯一性。这可以避免因为键名冲突而产生意外的行为或覆盖现有的属性。

 2. 隐藏属性:通过使用Symbol作为属性键,可以隐藏某些属性,使其不容易被意外修改或访问。因为Symbol键无法通过常规的对象属性访问方法(点号或方括号)获取,除非有对应的Symbol引用。 

 3. 迭代器和生成器:Symbol可以用于定义对象的迭代器行为。在迭代过程中,Symbol可用于自定义对象的迭代器方法,如`Symbol.iterator`。 

 4. 防止命名冲突:由于Symbol的唯一性,它们可以用于防止不同模块、库或插件之间的命名冲突。通过使用Symbol作为标识符,可以确保不同代码块之间的符号不会相互干扰。 

如果需要比较Symbol值是否相等,应使用`Symbol.for()`方法创建全局共享的Symbol。

Symbol在需要确保唯一性、隐藏属性或自定义行为的情况下非常有用。但是,它们在常规编程中并不常用,大部分情况下仍然会使用字符串作为属性键。

细节

有朋友可能会注意到,在列举java和JavaScript的基本数据类型时,java是小写单词而JavaScript是首字母大写单词,那么是规定了描述java基本数据类型时要用小写单词,描述JavaScript基本数据类型时要用首字母大写单词吗?

是的。

在Java中,基本数据类型的名称通常使用小写字母表示,如"int"、"boolean"、"double"等。 而在JavaScript中,基本数据类型的名称通常使用首字母大写的单词表示,如"Number"、"Boolean"、"String"等。 

这是由于Java和JavaScript在设计和语法上存在一些不同,其中一项差异就是它们对基本数据类型名称的命名约定。请注意,在编写代码时,正确使用相应的命名约定将有助于提高代码的可读性和减少错误。

你可能感兴趣的:(JavaScript,java,javascript,servlet)