首页 > 编程语言 >SAP Fiori开发中的JavaScript基础知识2 - 变量,操作符,值,类型

SAP Fiori开发中的JavaScript基础知识2 - 变量,操作符,值,类型

时间:2024-03-28 14:58:26浏览次数:340  
标签:let 变量 JavaScript Fiori var 操作符 SAP 声明

1. JavaScript代码示例

在介绍JavaScript具体语法前,让我们先看一段在Web应用程序过程中的JS代码片。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>First JavaScript Application!</title>
		<script src="js/myExternal.js" />

		<script>
		console.log("JavaScript is running!");
		</script>
	</head>
<body>
</body>

上面示例中,在 script 标签间的代码即为JavaScript代码。JavaScript代码可以直接嵌入到HTML文件中(HTML5中,type属性不再强制);也可以独立附加到.js文件中,通过src属性进行引用(支持相对路径和绝对路径)。

对于JavaScript的语法,让我从一个最简单的变量赋值表达式作为开始学习的起点。让我们一起看一看下面这个表达式中所包含的信息。

var a = 2 * b;

在这个表达式中,包含了以下几个元素:

  • 关键字:var
  • 变量:a, b
  • 数值:2
  • 操作符:= , *
  • 表达式:
    • 数值表达式:2
    • 变量表达式:b
    • 算术表达式: 2 * b
    • 赋值表达式: a = 2 * b

接下来,让我们分别介绍这些元素。

2 变量

JavaScript 是一种动态类型语言,这意味着你不需要提前声明变量的类型,系统会在运行时自动判断。

使用 varletconst 关键字来声明变量。 变量名需要以 [a-zA-Z],$ 或 _ 开头。

以下是一些例子:

var name;  // 声明一个名为 "name" 的变量
let age;   // 声明一个名为 "age" 的变量
const pi;  // 声明一个名为 "pi" 的常量

注意,使用 const 声明的是常量,一旦赋值后,其值就不能再改变。

你也可以在声明变量的同时给它赋值:

var name = "John";	 // 声明一个名为 "name" 的变量,并赋值为 "John"
let age = 20; 		 // 声明一个名为 "age" 的变量,并赋值为 20
const pi = 3.14;	 // 声明一个名为 "pi" 的常量,并赋值为 3.14

如果你想改变一个变量的值,你可以直接给它赋一个新的值:

name = "Jane";  	// 改变 "name" 的值为 "Jane"
age = 30;		    // 改变 "age" 的值为 30

但是,你不能改变一个常量的值:

pi = 3.14159; // 这会抛出一个错误,因为 "pi" 是一个常量,其值不能改变

注意,JavaScript 是一种动态类型语言,这意味着你不需要提前声明变量的类型,系统会在运行时自动判断。例如,你可以给一个变量先赋一个字符串值,然后再赋一个数字值:

var x = "hello";	 // "x" 是一个字符串
x = 10; 			// 现在 "x" 是一个数字

2.1 区分 var 与 let

在 JavaScript 中,var 和 let 都是用来声明变量的关键字,但它们之间有一些重要的区别:

作用域:var 声明的变量具有函数作用域,这意味着 var 声明的变量只在声明它的函数内部(全局作用域)可见。而 let 声明的变量具有块级作用域,这意味着 let 声明的变量只在声明它的代码块内部可见。

function varTest() {
  var x = 1;
  if (true) {
    var x = 2;  // 同样的变量!
    console.log(x);  // 2
  }
  console.log(x);  // 2
}

function letTest() {
  let x = 1;
  if (true) {
    let x = 2;  // 不同的变量
    console.log(x);  // 2
  }
  console.log(x);  // 1
}

变量提升:var 声明的变量会被提升到它们所在的函数或全局作用域的顶部。这意味着你可以在声明变量之前使用它,而它的值会是 undefined。而 let 声明的变量不会被提升,如果你在声明变量之前使用它,会抛出一个错误。

console.log(x); // undefined
var x = 5;

console.log(y); // ReferenceError: y is not defined
let y = 5;

重复声明:在同一个作用域中,var 允许你多次声明同一个变量。而 let 不允许你在同一个作用域中多次声明同一个变量

var x = 1;
var x = 2; // 没有问题

let y = 1;
let y = 2; // SyntaxError: Identifier 'y' has already been declared

总的来说,let 提供了更好的变量作用域控制,更严格的声明规则,以及更好的错误检查,因此在现代的 JavaScript 开发中,let通常是首选的变量声明关键字。

2.2 变量的命名规范

在BAS中开发Fiori应用时,自动生成的JavaScript文件中的变量是遵循了一定的命名规范的。建议在开发JavaScript代码时,遵循相同的命名规范。

  • 使用驼峰命名法
  • 私有变量以下划线_开头
  • 变量类型虽然不是强制的,但建议标记对应的类型
    • 整型(Integer): iVariable
    • 浮点型(Float): fVariable
    • 布尔型(Boolean): bVariable
    • 字符串型(String): sVariable
    • 数组(Array): aVariable
    • 对象(Object): oVariable
    • 函数(Function): fnFunction
    • Map和关联数组(Associated array): mProperties

3 操作符

在 JavaScript 中,有许多不同类型的操作符,包括

  • 赋值操作符:用于给变量赋值。例如 =,+=,-=,*=,/= 等。

  • 算术操作符:用于执行数学运算。例如 +,-,*,/,%(取余),++(递增),–(递减)等。

  • 比较操作符:用于比较两个值。

   例如:   ==(等于),!=(不等于),===(严格等于),!==(严格不等于),
   >(大于),<(小于),   >=(大于或等于),<=(小于或等于)等。
  • 逻辑操作符:用于执行逻辑运算。例如 &&(逻辑与),||(逻辑或),!(逻辑非)等。

  • 条件(三元)操作符:由问号 ? 和冒号 : 组成,用于执行基于条件的操作。例如 condition ? exprIfTrue :
    exprIfFalse。

  • 类型操作符:例如 typeof(返回一个值的类型),instanceof(测试一个对象是否是一个类的实例)等。

  • 位操作符:用于直接操作一个数的二进制位。例如
    &(按位与),|(按位或),^(按位异或),~(按位非),<<(左移),>>(有符号右移),>>>(无符号右移)等。

  • 字符串连接操作符:+

  • 其他操作符:还有一些其他的操作符,如逗号操作符 ,,void 操作符 void,delete 操作符 delete,in 操作符 in,new 操作符 new 等。

下面是使用这些操作符操作变量的一些简单的例子:

var a = 2, b = 3;  //变量声明赋值

a = 2 * b; 		  //数学运算赋值

b += 4;           //数学运算赋值

a++;              //自增

a === b;         //严格等于

a == 0;          //等于

a >= b;          //大于等于

a || b;           //逻辑或

"abc" + "def"     //字符串拼接

在 JavaScript 中,== 和 === 都是比较操作符,但它们的比较方式有所不同:

== 是等于操作符,它会进行类型转换,如果两个操作数的类型不同,它会尝试将它们转换为相同的类型,然后进行比较

5 == "5"            // true,因为在比较前,字符串 "5" 被转换为了数字 5
null == undefined  // true,因为在比较前,null 和 undefined 被认为是相等的

=== 是严格等于操作符,它不会进行类型转换,如果两个操作数的类型不同,它会直接返回 false

5 === "5"           // false,因为数字 5 和字符串 "5" 是不同的类型
null === undefined  // false,因为 null 和 undefined 是不同的类型

因此,当你需要比较两个值是否完全相等(包括类型和值)时,应该使用 ===。当你不关心两个值的类型,只关心它们的值是否相等时,可以使用 ==。但是,由于 == 的类型转换规则可能会导致一些意想不到的结果,因此在大多数情况下,推荐使用 ===。

4 值和类型

在JavaScript中,值是有类型的,变量是没有类型的。在 JavaScript 中,有以下几种基本的数据类型:

  • Number:表示数字,可以是整数或浮点数,例如:10,15.5。

  • String:表示文本(或字符串),例如:“Hello”,‘World’。

  • Boolean:表示逻辑值,可以是 true 或 false。

  • Null:表示一个空值,只有一个值,即 null。

  • Undefined:表示未定义的值,当一个变量被声明但没有赋值时,它的值就是 undefined。

  • Symbol:表示唯一的值,主要用于创建对象的唯一属性名。

除了这些基本类型,JavaScript 还有一种复杂的数据类型:

  • Object:表示一个对象,可以包含多个键值对。对象的键是字符串,值可以是任何类型的数据。
  • Function:函数类型

例如:

var num = 10;           // Number
var str = "Hello";      // String
var bool = true;        // Boolean
var nothing = null;     // Null
var notAssigned;        // Undefined
var sym = Symbol("id"); // Symbol

var obj = {             // Object
  name: "John",
  age: 30
};

在JavaScript中,可以使用 typeof 操作符来检查一个值的类型,其将返回一个string类型的变量,其中包含着这个值的类型。

typeof num; 		// "number"
typeof str; 		// "string"
typeof bool; 		// "boolean"
typeof nothing; 	// "object"
typeof notAssigned; // "undefined"
typeof sym; 		// "symbol"
typeof obj; 		// "object"

注意,使用 typeof 时,Array和Date是无法检查的,对于null,其会被看做是object类型。

5. 小结

本文介绍了JavaScript语言中最基本的概念,包括变量,操作符,值,类型。与此同时,分享了在SAP Fiori开发过程中,JavaScript代码应当遵循的变量命名规则。希望对你有帮助。

标签:let,变量,JavaScript,Fiori,var,操作符,SAP,声明
From: https://blog.csdn.net/nkGavinGuo/article/details/137014070

相关文章

  • ECMAScript与JavaScript:一窥两者之间的微妙差异
    目录引言一、ECMAScript的定义与作用二、JavaScript的定义与作用三、ECMAScript和JavaScript的关系同源关系语法规范兼容性四、ECMAScript和JavaScript的区别概念层面更新频率兼容性五、ECMAScript规范和JavaScript引擎的实现之间是如何保持兼容性的六、ECMAScrip......
  • 03-JavaScript数组
    1.数组(重点)思考:如何保存一个班级的所有学生的姓名?回答:一种方法利用前面学习过的知识,则每一条信息都需要一个变量去保存,缺点是这样做很麻烦,而且容易出错,又不合理;另一种方法就是利用数组。概念:数组是存储一系列值的变量集合,可以存储多个值。1.1语法数组构成:数组由一个或......
  • SAP BTP云上一个JVM与DB Connection纠缠的案例
    前言最近在CF(CloudFoundry)云平台上遇到一个比较经典的案例。因为牵扯到JVM(app进程)与数据库连接两大块,稍有不慎,很容易引起不快。在云环境下,有时候相互扯皮的事蛮多。如果是DB的问题,就会找DB相关部门。关键是如何自证。涉及到职场生存法则,大家都不愿意去背锅,谁背锅,意......
  • JavaScript变量/数组
    变量1、var:全局变量(作用域范围大,且允许重复声明)2、let:局部变量(作用域仅在代码块内,且不允许重复声明)3、const:常量(一旦声明,常量的值不能改变)数组特点:长度可变,类型可变for和foreach的区别:1、for遍历数组中的所有元素2、foreach遍历数组中有值的元素,并调用一次传入的函......
  • JavaScript 基础、内置对象、BOM 和 DOM 常用英文单词总结
    一提到编程、软件、代码。对于英语不是很熟悉的同学望而却步。其实没有想像中的难么难,反复练习加上自己的思考、总结,会形成肌肉记忆。整理一下,初学者每天30遍。1、JavaScript基础语法break:中断循环或switch语句的执行。case:在switch语句中检查的值。catch:在try-c......
  • SAP:界面程序上的按钮、LABEL、Checkbox等说明在哪里定义
    环境:SAPECC6:1、界面程序上的按钮、LABEL、Checkbox等说明在哪里定义?在事务码T-CODE:SE80创建程序后(如:Z12_06),在工具菜单栏点击“其它对象...”按钮,选择”增强选项“,在对象选择窗口的,选择”程序”标签页的“文本元素”。在“文本符号”标签页里输入文本内容。字段说明:符......
  • AJAX(Asynchronous JavaScript and XML)是一种用于创建交互式网页应用程序的技术
    AJAX(AsynchronousJavaScriptandXML)是一种用于创建交互式网页应用程序的技术。通过在后台与服务器进行异步通信,实现在不重新加载整个页面的情况下更新部分页面内容。而Spring是一个开源的Java框架,它提供了一种简化Java开发的方式,包括Web应用程序开发。下面是一个使用AJAX......
  • 【教程】JavaScript代码混淆及优化
     摘要本文将介绍常见的JavaScript代码混淆技术,包括字符串转十六进制、Unicode编码、Base64加密、数值加密、数组混淆、花指令、逗号表达式、控制流程平坦化和eval执行。通过对这些混淆技术的理解和应用,可以提高代码的安全性和保护知识产权。引言随着互联网的发展,JavaScript作......
  • (九)JavaScript的执行上下文
    一、理解执行上下文,就是代码被解析和执行时所在环境的抽象概念。JavaScript中运行任何代码都是在执行上下文中运行。由js引擎自动创建的对象,包含对应作用雨中的所有变量属性。二、执行上下文的类型全局执行上下文:默认的最基础的执行上下文。不在任何函数中的代码都处......
  • JavaScript混淆工具选择与使用指南
    摘要本文介绍了什么是js混淆工具,以及为什么需要使用js混淆工具。详细解释了js混淆工具的实现原理和作用,探讨了如何选择合适的js混淆工具,列举了几款常用的js混淆工具,并对它们的特点和适用场景进行了分析。最后总结了js混淆工具的重要性和使用建议。在Web开发中,JavaScript代码是一......